<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>house_price_advanced</title>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>

    <style type="text/css">
        /*!
*
* Twitter Bootstrap
*
*/
        /*!
 * Bootstrap v3.3.6 (http://getbootstrap.com)
 * Copyright 2011-2015 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
        /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
        html {
            font-family: sans-serif;
            -ms-text-size-adjust: 100%;
            -webkit-text-size-adjust: 100%;
        }

        body {
            margin: 0;
        }

        article,
        aside,
        details,
        figcaption,
        figure,
        footer,
        header,
        hgroup,
        main,
        menu,
        nav,
        section,
        summary {
            display: block;
        }

        audio,
        canvas,
        progress,
        video {
            display: inline-block;
            vertical-align: baseline;
        }

        audio:not([controls]) {
            display: none;
            height: 0;
        }

        [hidden],
        template {
            display: none;
        }

        a {
            background-color: transparent;
        }

        a:active,
        a:hover {
            outline: 0;
        }

        abbr[title] {
            border-bottom: 1px dotted;
        }

        b,
        strong {
            font-weight: bold;
        }

        dfn {
            font-style: italic;
        }

        h1 {
            font-size: 2em;
            margin: 0.67em 0;
        }

        mark {
            background: #ff0;
            color: #000;
        }

        small {
            font-size: 80%;
        }

        sub,
        sup {
            font-size: 75%;
            line-height: 0;
            position: relative;
            vertical-align: baseline;
        }

        sup {
            top: -0.5em;
        }

        sub {
            bottom: -0.25em;
        }

        img {
            border: 0;
        }

        svg:not(:root) {
            overflow: hidden;
        }

        figure {
            margin: 1em 40px;
        }

        hr {
            box-sizing: content-box;
            height: 0;
        }

        pre {
            overflow: auto;
        }

        code,
        kbd,
        pre,
        samp {
            font-family: monospace, monospace;
            font-size: 1em;
        }

        button,
        input,
        optgroup,
        select,
        textarea {
            color: inherit;
            font: inherit;
            margin: 0;
        }

        button {
            overflow: visible;
        }

        button,
        select {
            text-transform: none;
        }

        button,
        html input[type="button"],
        input[type="reset"],
        input[type="submit"] {
            -webkit-appearance: button;
            cursor: pointer;
        }

        button[disabled],
        html input[disabled] {
            cursor: default;
        }

        button::-moz-focus-inner,
        input::-moz-focus-inner {
            border: 0;
            padding: 0;
        }

        input {
            line-height: normal;
        }

        input[type="checkbox"],
        input[type="radio"] {
            box-sizing: border-box;
            padding: 0;
        }

        input[type="number"]::-webkit-inner-spin-button,
        input[type="number"]::-webkit-outer-spin-button {
            height: auto;
        }

        input[type="search"] {
            -webkit-appearance: textfield;
            box-sizing: content-box;
        }

        input[type="search"]::-webkit-search-cancel-button,
        input[type="search"]::-webkit-search-decoration {
            -webkit-appearance: none;
        }

        fieldset {
            border: 1px solid #c0c0c0;
            margin: 0 2px;
            padding: 0.35em 0.625em 0.75em;
        }

        legend {
            border: 0;
            padding: 0;
        }

        textarea {
            overflow: auto;
        }

        optgroup {
            font-weight: bold;
        }

        table {
            border-collapse: collapse;
            border-spacing: 0;
        }

        td,
        th {
            padding: 0;
        }

        /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
        @media print {
            *,
            *:before,
            *:after {
                background: transparent !important;
                color: #000 !important;
                box-shadow: none !important;
                text-shadow: none !important;
            }

            a,
            a:visited {
                text-decoration: underline;
            }

            a[href]:after {
                content: " (" attr(href) ")";
            }

            abbr[title]:after {
                content: " (" attr(title) ")";
            }

            a[href^="#"]:after,
            a[href^="javascript:"]:after {
                content: "";
            }

            pre,
            blockquote {
                border: 1px solid #999;
                page-break-inside: avoid;
            }

            thead {
                display: table-header-group;
            }

            tr,
            img {
                page-break-inside: avoid;
            }

            img {
                max-width: 100% !important;
            }

            p,
            h2,
            h3 {
                orphans: 3;
                widows: 3;
            }

            h2,
            h3 {
                page-break-after: avoid;
            }

            .navbar {
                display: none;
            }

            .btn > .caret,
            .dropup > .btn > .caret {
                border-top-color: #000 !important;
            }

            .label {
                border: 1px solid #000;
            }

            .table {
                border-collapse: collapse !important;
            }

            .table td,
            .table th {
                background-color: #fff !important;
            }

            .table-bordered th,
            .table-bordered td {
                border: 1px solid #ddd !important;
            }
        }

        @font-face {
            font-family: 'Glyphicons Halflings';
            src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot');
            src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
        }

        .glyphicon {
            position: relative;
            top: 1px;
            display: inline-block;
            font-family: 'Glyphicons Halflings';
            font-style: normal;
            font-weight: normal;
            line-height: 1;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }

        .glyphicon-asterisk:before {
            content: "\002a";
        }

        .glyphicon-plus:before {
            content: "\002b";
        }

        .glyphicon-euro:before,
        .glyphicon-eur:before {
            content: "\20ac";
        }

        .glyphicon-minus:before {
            content: "\2212";
        }

        .glyphicon-cloud:before {
            content: "\2601";
        }

        .glyphicon-envelope:before {
            content: "\2709";
        }

        .glyphicon-pencil:before {
            content: "\270f";
        }

        .glyphicon-glass:before {
            content: "\e001";
        }

        .glyphicon-music:before {
            content: "\e002";
        }

        .glyphicon-search:before {
            content: "\e003";
        }

        .glyphicon-heart:before {
            content: "\e005";
        }

        .glyphicon-star:before {
            content: "\e006";
        }

        .glyphicon-star-empty:before {
            content: "\e007";
        }

        .glyphicon-user:before {
            content: "\e008";
        }

        .glyphicon-film:before {
            content: "\e009";
        }

        .glyphicon-th-large:before {
            content: "\e010";
        }

        .glyphicon-th:before {
            content: "\e011";
        }

        .glyphicon-th-list:before {
            content: "\e012";
        }

        .glyphicon-ok:before {
            content: "\e013";
        }

        .glyphicon-remove:before {
            content: "\e014";
        }

        .glyphicon-zoom-in:before {
            content: "\e015";
        }

        .glyphicon-zoom-out:before {
            content: "\e016";
        }

        .glyphicon-off:before {
            content: "\e017";
        }

        .glyphicon-signal:before {
            content: "\e018";
        }

        .glyphicon-cog:before {
            content: "\e019";
        }

        .glyphicon-trash:before {
            content: "\e020";
        }

        .glyphicon-home:before {
            content: "\e021";
        }

        .glyphicon-file:before {
            content: "\e022";
        }

        .glyphicon-time:before {
            content: "\e023";
        }

        .glyphicon-road:before {
            content: "\e024";
        }

        .glyphicon-download-alt:before {
            content: "\e025";
        }

        .glyphicon-download:before {
            content: "\e026";
        }

        .glyphicon-upload:before {
            content: "\e027";
        }

        .glyphicon-inbox:before {
            content: "\e028";
        }

        .glyphicon-play-circle:before {
            content: "\e029";
        }

        .glyphicon-repeat:before {
            content: "\e030";
        }

        .glyphicon-refresh:before {
            content: "\e031";
        }

        .glyphicon-list-alt:before {
            content: "\e032";
        }

        .glyphicon-lock:before {
            content: "\e033";
        }

        .glyphicon-flag:before {
            content: "\e034";
        }

        .glyphicon-headphones:before {
            content: "\e035";
        }

        .glyphicon-volume-off:before {
            content: "\e036";
        }

        .glyphicon-volume-down:before {
            content: "\e037";
        }

        .glyphicon-volume-up:before {
            content: "\e038";
        }

        .glyphicon-qrcode:before {
            content: "\e039";
        }

        .glyphicon-barcode:before {
            content: "\e040";
        }

        .glyphicon-tag:before {
            content: "\e041";
        }

        .glyphicon-tags:before {
            content: "\e042";
        }

        .glyphicon-book:before {
            content: "\e043";
        }

        .glyphicon-bookmark:before {
            content: "\e044";
        }

        .glyphicon-print:before {
            content: "\e045";
        }

        .glyphicon-camera:before {
            content: "\e046";
        }

        .glyphicon-font:before {
            content: "\e047";
        }

        .glyphicon-bold:before {
            content: "\e048";
        }

        .glyphicon-italic:before {
            content: "\e049";
        }

        .glyphicon-text-height:before {
            content: "\e050";
        }

        .glyphicon-text-width:before {
            content: "\e051";
        }

        .glyphicon-align-left:before {
            content: "\e052";
        }

        .glyphicon-align-center:before {
            content: "\e053";
        }

        .glyphicon-align-right:before {
            content: "\e054";
        }

        .glyphicon-align-justify:before {
            content: "\e055";
        }

        .glyphicon-list:before {
            content: "\e056";
        }

        .glyphicon-indent-left:before {
            content: "\e057";
        }

        .glyphicon-indent-right:before {
            content: "\e058";
        }

        .glyphicon-facetime-video:before {
            content: "\e059";
        }

        .glyphicon-picture:before {
            content: "\e060";
        }

        .glyphicon-map-marker:before {
            content: "\e062";
        }

        .glyphicon-adjust:before {
            content: "\e063";
        }

        .glyphicon-tint:before {
            content: "\e064";
        }

        .glyphicon-edit:before {
            content: "\e065";
        }

        .glyphicon-share:before {
            content: "\e066";
        }

        .glyphicon-check:before {
            content: "\e067";
        }

        .glyphicon-move:before {
            content: "\e068";
        }

        .glyphicon-step-backward:before {
            content: "\e069";
        }

        .glyphicon-fast-backward:before {
            content: "\e070";
        }

        .glyphicon-backward:before {
            content: "\e071";
        }

        .glyphicon-play:before {
            content: "\e072";
        }

        .glyphicon-pause:before {
            content: "\e073";
        }

        .glyphicon-stop:before {
            content: "\e074";
        }

        .glyphicon-forward:before {
            content: "\e075";
        }

        .glyphicon-fast-forward:before {
            content: "\e076";
        }

        .glyphicon-step-forward:before {
            content: "\e077";
        }

        .glyphicon-eject:before {
            content: "\e078";
        }

        .glyphicon-chevron-left:before {
            content: "\e079";
        }

        .glyphicon-chevron-right:before {
            content: "\e080";
        }

        .glyphicon-plus-sign:before {
            content: "\e081";
        }

        .glyphicon-minus-sign:before {
            content: "\e082";
        }

        .glyphicon-remove-sign:before {
            content: "\e083";
        }

        .glyphicon-ok-sign:before {
            content: "\e084";
        }

        .glyphicon-question-sign:before {
            content: "\e085";
        }

        .glyphicon-info-sign:before {
            content: "\e086";
        }

        .glyphicon-screenshot:before {
            content: "\e087";
        }

        .glyphicon-remove-circle:before {
            content: "\e088";
        }

        .glyphicon-ok-circle:before {
            content: "\e089";
        }

        .glyphicon-ban-circle:before {
            content: "\e090";
        }

        .glyphicon-arrow-left:before {
            content: "\e091";
        }

        .glyphicon-arrow-right:before {
            content: "\e092";
        }

        .glyphicon-arrow-up:before {
            content: "\e093";
        }

        .glyphicon-arrow-down:before {
            content: "\e094";
        }

        .glyphicon-share-alt:before {
            content: "\e095";
        }

        .glyphicon-resize-full:before {
            content: "\e096";
        }

        .glyphicon-resize-small:before {
            content: "\e097";
        }

        .glyphicon-exclamation-sign:before {
            content: "\e101";
        }

        .glyphicon-gift:before {
            content: "\e102";
        }

        .glyphicon-leaf:before {
            content: "\e103";
        }

        .glyphicon-fire:before {
            content: "\e104";
        }

        .glyphicon-eye-open:before {
            content: "\e105";
        }

        .glyphicon-eye-close:before {
            content: "\e106";
        }

        .glyphicon-warning-sign:before {
            content: "\e107";
        }

        .glyphicon-plane:before {
            content: "\e108";
        }

        .glyphicon-calendar:before {
            content: "\e109";
        }

        .glyphicon-random:before {
            content: "\e110";
        }

        .glyphicon-comment:before {
            content: "\e111";
        }

        .glyphicon-magnet:before {
            content: "\e112";
        }

        .glyphicon-chevron-up:before {
            content: "\e113";
        }

        .glyphicon-chevron-down:before {
            content: "\e114";
        }

        .glyphicon-retweet:before {
            content: "\e115";
        }

        .glyphicon-shopping-cart:before {
            content: "\e116";
        }

        .glyphicon-folder-close:before {
            content: "\e117";
        }

        .glyphicon-folder-open:before {
            content: "\e118";
        }

        .glyphicon-resize-vertical:before {
            content: "\e119";
        }

        .glyphicon-resize-horizontal:before {
            content: "\e120";
        }

        .glyphicon-hdd:before {
            content: "\e121";
        }

        .glyphicon-bullhorn:before {
            content: "\e122";
        }

        .glyphicon-bell:before {
            content: "\e123";
        }

        .glyphicon-certificate:before {
            content: "\e124";
        }

        .glyphicon-thumbs-up:before {
            content: "\e125";
        }

        .glyphicon-thumbs-down:before {
            content: "\e126";
        }

        .glyphicon-hand-right:before {
            content: "\e127";
        }

        .glyphicon-hand-left:before {
            content: "\e128";
        }

        .glyphicon-hand-up:before {
            content: "\e129";
        }

        .glyphicon-hand-down:before {
            content: "\e130";
        }

        .glyphicon-circle-arrow-right:before {
            content: "\e131";
        }

        .glyphicon-circle-arrow-left:before {
            content: "\e132";
        }

        .glyphicon-circle-arrow-up:before {
            content: "\e133";
        }

        .glyphicon-circle-arrow-down:before {
            content: "\e134";
        }

        .glyphicon-globe:before {
            content: "\e135";
        }

        .glyphicon-wrench:before {
            content: "\e136";
        }

        .glyphicon-tasks:before {
            content: "\e137";
        }

        .glyphicon-filter:before {
            content: "\e138";
        }

        .glyphicon-briefcase:before {
            content: "\e139";
        }

        .glyphicon-fullscreen:before {
            content: "\e140";
        }

        .glyphicon-dashboard:before {
            content: "\e141";
        }

        .glyphicon-paperclip:before {
            content: "\e142";
        }

        .glyphicon-heart-empty:before {
            content: "\e143";
        }

        .glyphicon-link:before {
            content: "\e144";
        }

        .glyphicon-phone:before {
            content: "\e145";
        }

        .glyphicon-pushpin:before {
            content: "\e146";
        }

        .glyphicon-usd:before {
            content: "\e148";
        }

        .glyphicon-gbp:before {
            content: "\e149";
        }

        .glyphicon-sort:before {
            content: "\e150";
        }

        .glyphicon-sort-by-alphabet:before {
            content: "\e151";
        }

        .glyphicon-sort-by-alphabet-alt:before {
            content: "\e152";
        }

        .glyphicon-sort-by-order:before {
            content: "\e153";
        }

        .glyphicon-sort-by-order-alt:before {
            content: "\e154";
        }

        .glyphicon-sort-by-attributes:before {
            content: "\e155";
        }

        .glyphicon-sort-by-attributes-alt:before {
            content: "\e156";
        }

        .glyphicon-unchecked:before {
            content: "\e157";
        }

        .glyphicon-expand:before {
            content: "\e158";
        }

        .glyphicon-collapse-down:before {
            content: "\e159";
        }

        .glyphicon-collapse-up:before {
            content: "\e160";
        }

        .glyphicon-log-in:before {
            content: "\e161";
        }

        .glyphicon-flash:before {
            content: "\e162";
        }

        .glyphicon-log-out:before {
            content: "\e163";
        }

        .glyphicon-new-window:before {
            content: "\e164";
        }

        .glyphicon-record:before {
            content: "\e165";
        }

        .glyphicon-save:before {
            content: "\e166";
        }

        .glyphicon-open:before {
            content: "\e167";
        }

        .glyphicon-saved:before {
            content: "\e168";
        }

        .glyphicon-import:before {
            content: "\e169";
        }

        .glyphicon-export:before {
            content: "\e170";
        }

        .glyphicon-send:before {
            content: "\e171";
        }

        .glyphicon-floppy-disk:before {
            content: "\e172";
        }

        .glyphicon-floppy-saved:before {
            content: "\e173";
        }

        .glyphicon-floppy-remove:before {
            content: "\e174";
        }

        .glyphicon-floppy-save:before {
            content: "\e175";
        }

        .glyphicon-floppy-open:before {
            content: "\e176";
        }

        .glyphicon-credit-card:before {
            content: "\e177";
        }

        .glyphicon-transfer:before {
            content: "\e178";
        }

        .glyphicon-cutlery:before {
            content: "\e179";
        }

        .glyphicon-header:before {
            content: "\e180";
        }

        .glyphicon-compressed:before {
            content: "\e181";
        }

        .glyphicon-earphone:before {
            content: "\e182";
        }

        .glyphicon-phone-alt:before {
            content: "\e183";
        }

        .glyphicon-tower:before {
            content: "\e184";
        }

        .glyphicon-stats:before {
            content: "\e185";
        }

        .glyphicon-sd-video:before {
            content: "\e186";
        }

        .glyphicon-hd-video:before {
            content: "\e187";
        }

        .glyphicon-subtitles:before {
            content: "\e188";
        }

        .glyphicon-sound-stereo:before {
            content: "\e189";
        }

        .glyphicon-sound-dolby:before {
            content: "\e190";
        }

        .glyphicon-sound-5-1:before {
            content: "\e191";
        }

        .glyphicon-sound-6-1:before {
            content: "\e192";
        }

        .glyphicon-sound-7-1:before {
            content: "\e193";
        }

        .glyphicon-copyright-mark:before {
            content: "\e194";
        }

        .glyphicon-registration-mark:before {
            content: "\e195";
        }

        .glyphicon-cloud-download:before {
            content: "\e197";
        }

        .glyphicon-cloud-upload:before {
            content: "\e198";
        }

        .glyphicon-tree-conifer:before {
            content: "\e199";
        }

        .glyphicon-tree-deciduous:before {
            content: "\e200";
        }

        .glyphicon-cd:before {
            content: "\e201";
        }

        .glyphicon-save-file:before {
            content: "\e202";
        }

        .glyphicon-open-file:before {
            content: "\e203";
        }

        .glyphicon-level-up:before {
            content: "\e204";
        }

        .glyphicon-copy:before {
            content: "\e205";
        }

        .glyphicon-paste:before {
            content: "\e206";
        }

        .glyphicon-alert:before {
            content: "\e209";
        }

        .glyphicon-equalizer:before {
            content: "\e210";
        }

        .glyphicon-king:before {
            content: "\e211";
        }

        .glyphicon-queen:before {
            content: "\e212";
        }

        .glyphicon-pawn:before {
            content: "\e213";
        }

        .glyphicon-bishop:before {
            content: "\e214";
        }

        .glyphicon-knight:before {
            content: "\e215";
        }

        .glyphicon-baby-formula:before {
            content: "\e216";
        }

        .glyphicon-tent:before {
            content: "\26fa";
        }

        .glyphicon-blackboard:before {
            content: "\e218";
        }

        .glyphicon-bed:before {
            content: "\e219";
        }

        .glyphicon-apple:before {
            content: "\f8ff";
        }

        .glyphicon-erase:before {
            content: "\e221";
        }

        .glyphicon-hourglass:before {
            content: "\231b";
        }

        .glyphicon-lamp:before {
            content: "\e223";
        }

        .glyphicon-duplicate:before {
            content: "\e224";
        }

        .glyphicon-piggy-bank:before {
            content: "\e225";
        }

        .glyphicon-scissors:before {
            content: "\e226";
        }

        .glyphicon-bitcoin:before {
            content: "\e227";
        }

        .glyphicon-btc:before {
            content: "\e227";
        }

        .glyphicon-xbt:before {
            content: "\e227";
        }

        .glyphicon-yen:before {
            content: "\00a5";
        }

        .glyphicon-jpy:before {
            content: "\00a5";
        }

        .glyphicon-ruble:before {
            content: "\20bd";
        }

        .glyphicon-rub:before {
            content: "\20bd";
        }

        .glyphicon-scale:before {
            content: "\e230";
        }

        .glyphicon-ice-lolly:before {
            content: "\e231";
        }

        .glyphicon-ice-lolly-tasted:before {
            content: "\e232";
        }

        .glyphicon-education:before {
            content: "\e233";
        }

        .glyphicon-option-horizontal:before {
            content: "\e234";
        }

        .glyphicon-option-vertical:before {
            content: "\e235";
        }

        .glyphicon-menu-hamburger:before {
            content: "\e236";
        }

        .glyphicon-modal-window:before {
            content: "\e237";
        }

        .glyphicon-oil:before {
            content: "\e238";
        }

        .glyphicon-grain:before {
            content: "\e239";
        }

        .glyphicon-sunglasses:before {
            content: "\e240";
        }

        .glyphicon-text-size:before {
            content: "\e241";
        }

        .glyphicon-text-color:before {
            content: "\e242";
        }

        .glyphicon-text-background:before {
            content: "\e243";
        }

        .glyphicon-object-align-top:before {
            content: "\e244";
        }

        .glyphicon-object-align-bottom:before {
            content: "\e245";
        }

        .glyphicon-object-align-horizontal:before {
            content: "\e246";
        }

        .glyphicon-object-align-left:before {
            content: "\e247";
        }

        .glyphicon-object-align-vertical:before {
            content: "\e248";
        }

        .glyphicon-object-align-right:before {
            content: "\e249";
        }

        .glyphicon-triangle-right:before {
            content: "\e250";
        }

        .glyphicon-triangle-left:before {
            content: "\e251";
        }

        .glyphicon-triangle-bottom:before {
            content: "\e252";
        }

        .glyphicon-triangle-top:before {
            content: "\e253";
        }

        .glyphicon-console:before {
            content: "\e254";
        }

        .glyphicon-superscript:before {
            content: "\e255";
        }

        .glyphicon-subscript:before {
            content: "\e256";
        }

        .glyphicon-menu-left:before {
            content: "\e257";
        }

        .glyphicon-menu-right:before {
            content: "\e258";
        }

        .glyphicon-menu-down:before {
            content: "\e259";
        }

        .glyphicon-menu-up:before {
            content: "\e260";
        }

        * {
            -webkit-box-sizing: border-box;
            -moz-box-sizing: border-box;
            box-sizing: border-box;
        }

        *:before,
        *:after {
            -webkit-box-sizing: border-box;
            -moz-box-sizing: border-box;
            box-sizing: border-box;
        }

        html {
            font-size: 10px;
            -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
        }

        body {
            font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
            font-size: 13px;
            line-height: 1.42857143;
            color: #000;
            background-color: #fff;
        }

        input,
        button,
        select,
        textarea {
            font-family: inherit;
            font-size: inherit;
            line-height: inherit;
        }

        a {
            color: #337ab7;
            text-decoration: none;
        }

        a:hover,
        a:focus {
            color: #23527c;
            text-decoration: underline;
        }

        a:focus {
            outline: thin dotted;
            outline: 5px auto -webkit-focus-ring-color;
            outline-offset: -2px;
        }

        figure {
            margin: 0;
        }

        img {
            vertical-align: middle;
        }

        .img-responsive,
        .thumbnail > img,
        .thumbnail a > img,
        .carousel-inner > .item > img,
        .carousel-inner > .item > a > img {
            display: block;
            max-width: 100%;
            height: auto;
        }

        .img-rounded {
            border-radius: 3px;
        }

        .img-thumbnail {
            padding: 4px;
            line-height: 1.42857143;
            background-color: #fff;
            border: 1px solid #ddd;
            border-radius: 2px;
            -webkit-transition: all 0.2s ease-in-out;
            -o-transition: all 0.2s ease-in-out;
            transition: all 0.2s ease-in-out;
            display: inline-block;
            max-width: 100%;
            height: auto;
        }

        .img-circle {
            border-radius: 50%;
        }

        hr {
            margin-top: 18px;
            margin-bottom: 18px;
            border: 0;
            border-top: 1px solid #eeeeee;
        }

        .sr-only {
            position: absolute;
            width: 1px;
            height: 1px;
            margin: -1px;
            padding: 0;
            overflow: hidden;
            clip: rect(0, 0, 0, 0);
            border: 0;
        }

        .sr-only-focusable:active,
        .sr-only-focusable:focus {
            position: static;
            width: auto;
            height: auto;
            margin: 0;
            overflow: visible;
            clip: auto;
        }

        [role="button"] {
            cursor: pointer;
        }

        h1,
        h2,
        h3,
        h4,
        h5,
        h6,
        .h1,
        .h2,
        .h3,
        .h4,
        .h5,
        .h6 {
            font-family: inherit;
            font-weight: 500;
            line-height: 1.1;
            color: inherit;
        }

        h1 small,
        h2 small,
        h3 small,
        h4 small,
        h5 small,
        h6 small,
        .h1 small,
        .h2 small,
        .h3 small,
        .h4 small,
        .h5 small,
        .h6 small,
        h1 .small,
        h2 .small,
        h3 .small,
        h4 .small,
        h5 .small,
        h6 .small,
        .h1 .small,
        .h2 .small,
        .h3 .small,
        .h4 .small,
        .h5 .small,
        .h6 .small {
            font-weight: normal;
            line-height: 1;
            color: #777777;
        }

        h1,
        .h1,
        h2,
        .h2,
        h3,
        .h3 {
            margin-top: 18px;
            margin-bottom: 9px;
        }

        h1 small,
        .h1 small,
        h2 small,
        .h2 small,
        h3 small,
        .h3 small,
        h1 .small,
        .h1 .small,
        h2 .small,
        .h2 .small,
        h3 .small,
        .h3 .small {
            font-size: 65%;
        }

        h4,
        .h4,
        h5,
        .h5,
        h6,
        .h6 {
            margin-top: 9px;
            margin-bottom: 9px;
        }

        h4 small,
        .h4 small,
        h5 small,
        .h5 small,
        h6 small,
        .h6 small,
        h4 .small,
        .h4 .small,
        h5 .small,
        .h5 .small,
        h6 .small,
        .h6 .small {
            font-size: 75%;
        }

        h1,
        .h1 {
            font-size: 33px;
        }

        h2,
        .h2 {
            font-size: 27px;
        }

        h3,
        .h3 {
            font-size: 23px;
        }

        h4,
        .h4 {
            font-size: 17px;
        }

        h5,
        .h5 {
            font-size: 13px;
        }

        h6,
        .h6 {
            font-size: 12px;
        }

        p {
            margin: 0 0 9px;
        }

        .lead {
            margin-bottom: 18px;
            font-size: 14px;
            font-weight: 300;
            line-height: 1.4;
        }

        @media (min-width: 768px) {
            .lead {
                font-size: 19.5px;
            }
        }

        small,
        .small {
            font-size: 92%;
        }

        mark,
        .mark {
            background-color: #fcf8e3;
            padding: .2em;
        }

        .text-left {
            text-align: left;
        }

        .text-right {
            text-align: right;
        }

        .text-center {
            text-align: center;
        }

        .text-justify {
            text-align: justify;
        }

        .text-nowrap {
            white-space: nowrap;
        }

        .text-lowercase {
            text-transform: lowercase;
        }

        .text-uppercase {
            text-transform: uppercase;
        }

        .text-capitalize {
            text-transform: capitalize;
        }

        .text-muted {
            color: #777777;
        }

        .text-primary {
            color: #337ab7;
        }

        a.text-primary:hover,
        a.text-primary:focus {
            color: #286090;
        }

        .text-success {
            color: #3c763d;
        }

        a.text-success:hover,
        a.text-success:focus {
            color: #2b542c;
        }

        .text-info {
            color: #31708f;
        }

        a.text-info:hover,
        a.text-info:focus {
            color: #245269;
        }

        .text-warning {
            color: #8a6d3b;
        }

        a.text-warning:hover,
        a.text-warning:focus {
            color: #66512c;
        }

        .text-danger {
            color: #a94442;
        }

        a.text-danger:hover,
        a.text-danger:focus {
            color: #843534;
        }

        .bg-primary {
            color: #fff;
            background-color: #337ab7;
        }

        a.bg-primary:hover,
        a.bg-primary:focus {
            background-color: #286090;
        }

        .bg-success {
            background-color: #dff0d8;
        }

        a.bg-success:hover,
        a.bg-success:focus {
            background-color: #c1e2b3;
        }

        .bg-info {
            background-color: #d9edf7;
        }

        a.bg-info:hover,
        a.bg-info:focus {
            background-color: #afd9ee;
        }

        .bg-warning {
            background-color: #fcf8e3;
        }

        a.bg-warning:hover,
        a.bg-warning:focus {
            background-color: #f7ecb5;
        }

        .bg-danger {
            background-color: #f2dede;
        }

        a.bg-danger:hover,
        a.bg-danger:focus {
            background-color: #e4b9b9;
        }

        .page-header {
            padding-bottom: 8px;
            margin: 36px 0 18px;
            border-bottom: 1px solid #eeeeee;
        }

        ul,
        ol {
            margin-top: 0;
            margin-bottom: 9px;
        }

        ul ul,
        ol ul,
        ul ol,
        ol ol {
            margin-bottom: 0;
        }

        .list-unstyled {
            padding-left: 0;
            list-style: none;
        }

        .list-inline {
            padding-left: 0;
            list-style: none;
            margin-left: -5px;
        }

        .list-inline > li {
            display: inline-block;
            padding-left: 5px;
            padding-right: 5px;
        }

        dl {
            margin-top: 0;
            margin-bottom: 18px;
        }

        dt,
        dd {
            line-height: 1.42857143;
        }

        dt {
            font-weight: bold;
        }

        dd {
            margin-left: 0;
        }

        @media (min-width: 541px) {
            .dl-horizontal dt {
                float: left;
                width: 160px;
                clear: left;
                text-align: right;
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
            }

            .dl-horizontal dd {
                margin-left: 180px;
            }
        }

        abbr[title],
        abbr[data-original-title] {
            cursor: help;
            border-bottom: 1px dotted #777777;
        }

        .initialism {
            font-size: 90%;
            text-transform: uppercase;
        }

        blockquote {
            padding: 9px 18px;
            margin: 0 0 18px;
            font-size: inherit;
            border-left: 5px solid #eeeeee;
        }

        blockquote p:last-child,
        blockquote ul:last-child,
        blockquote ol:last-child {
            margin-bottom: 0;
        }

        blockquote footer,
        blockquote small,
        blockquote .small {
            display: block;
            font-size: 80%;
            line-height: 1.42857143;
            color: #777777;
        }

        blockquote footer:before,
        blockquote small:before,
        blockquote .small:before {
            content: '\2014 \00A0';
        }

        .blockquote-reverse,
        blockquote.pull-right {
            padding-right: 15px;
            padding-left: 0;
            border-right: 5px solid #eeeeee;
            border-left: 0;
            text-align: right;
        }

        .blockquote-reverse footer:before,
        blockquote.pull-right footer:before,
        .blockquote-reverse small:before,
        blockquote.pull-right small:before,
        .blockquote-reverse .small:before,
        blockquote.pull-right .small:before {
            content: '';
        }

        .blockquote-reverse footer:after,
        blockquote.pull-right footer:after,
        .blockquote-reverse small:after,
        blockquote.pull-right small:after,
        .blockquote-reverse .small:after,
        blockquote.pull-right .small:after {
            content: '\00A0 \2014';
        }

        address {
            margin-bottom: 18px;
            font-style: normal;
            line-height: 1.42857143;
        }

        code,
        kbd,
        pre,
        samp {
            font-family: monospace;
        }

        code {
            padding: 2px 4px;
            font-size: 90%;
            color: #c7254e;
            background-color: #f9f2f4;
            border-radius: 2px;
        }

        kbd {
            padding: 2px 4px;
            font-size: 90%;
            color: #888;
            background-color: transparent;
            border-radius: 1px;
            box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
        }

        kbd kbd {
            padding: 0;
            font-size: 100%;
            font-weight: bold;
            box-shadow: none;
        }

        pre {
            display: block;
            padding: 8.5px;
            margin: 0 0 9px;
            font-size: 12px;
            line-height: 1.42857143;
            word-break: break-all;
            word-wrap: break-word;
            color: #333333;
            background-color: #f5f5f5;
            border: 1px solid #ccc;
            border-radius: 2px;
        }

        pre code {
            padding: 0;
            font-size: inherit;
            color: inherit;
            white-space: pre-wrap;
            background-color: transparent;
            border-radius: 0;
        }

        .pre-scrollable {
            max-height: 340px;
            overflow-y: scroll;
        }

        .container {
            margin-right: auto;
            margin-left: auto;
            padding-left: 0px;
            padding-right: 0px;
        }

        @media (min-width: 768px) {
            .container {
                width: 768px;
            }
        }

        @media (min-width: 992px) {
            .container {
                width: 940px;
            }
        }

        @media (min-width: 1200px) {
            .container {
                width: 1140px;
            }
        }

        .container-fluid {
            margin-right: auto;
            margin-left: auto;
            padding-left: 0px;
            padding-right: 0px;
        }

        .row {
            margin-left: 0px;
            margin-right: 0px;
        }

        .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
            position: relative;
            min-height: 1px;
            padding-left: 0px;
            padding-right: 0px;
        }

        .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
            float: left;
        }

        .col-xs-12 {
            width: 100%;
        }

        .col-xs-11 {
            width: 91.66666667%;
        }

        .col-xs-10 {
            width: 83.33333333%;
        }

        .col-xs-9 {
            width: 75%;
        }

        .col-xs-8 {
            width: 66.66666667%;
        }

        .col-xs-7 {
            width: 58.33333333%;
        }

        .col-xs-6 {
            width: 50%;
        }

        .col-xs-5 {
            width: 41.66666667%;
        }

        .col-xs-4 {
            width: 33.33333333%;
        }

        .col-xs-3 {
            width: 25%;
        }

        .col-xs-2 {
            width: 16.66666667%;
        }

        .col-xs-1 {
            width: 8.33333333%;
        }

        .col-xs-pull-12 {
            right: 100%;
        }

        .col-xs-pull-11 {
            right: 91.66666667%;
        }

        .col-xs-pull-10 {
            right: 83.33333333%;
        }

        .col-xs-pull-9 {
            right: 75%;
        }

        .col-xs-pull-8 {
            right: 66.66666667%;
        }

        .col-xs-pull-7 {
            right: 58.33333333%;
        }

        .col-xs-pull-6 {
            right: 50%;
        }

        .col-xs-pull-5 {
            right: 41.66666667%;
        }

        .col-xs-pull-4 {
            right: 33.33333333%;
        }

        .col-xs-pull-3 {
            right: 25%;
        }

        .col-xs-pull-2 {
            right: 16.66666667%;
        }

        .col-xs-pull-1 {
            right: 8.33333333%;
        }

        .col-xs-pull-0 {
            right: auto;
        }

        .col-xs-push-12 {
            left: 100%;
        }

        .col-xs-push-11 {
            left: 91.66666667%;
        }

        .col-xs-push-10 {
            left: 83.33333333%;
        }

        .col-xs-push-9 {
            left: 75%;
        }

        .col-xs-push-8 {
            left: 66.66666667%;
        }

        .col-xs-push-7 {
            left: 58.33333333%;
        }

        .col-xs-push-6 {
            left: 50%;
        }

        .col-xs-push-5 {
            left: 41.66666667%;
        }

        .col-xs-push-4 {
            left: 33.33333333%;
        }

        .col-xs-push-3 {
            left: 25%;
        }

        .col-xs-push-2 {
            left: 16.66666667%;
        }

        .col-xs-push-1 {
            left: 8.33333333%;
        }

        .col-xs-push-0 {
            left: auto;
        }

        .col-xs-offset-12 {
            margin-left: 100%;
        }

        .col-xs-offset-11 {
            margin-left: 91.66666667%;
        }

        .col-xs-offset-10 {
            margin-left: 83.33333333%;
        }

        .col-xs-offset-9 {
            margin-left: 75%;
        }

        .col-xs-offset-8 {
            margin-left: 66.66666667%;
        }

        .col-xs-offset-7 {
            margin-left: 58.33333333%;
        }

        .col-xs-offset-6 {
            margin-left: 50%;
        }

        .col-xs-offset-5 {
            margin-left: 41.66666667%;
        }

        .col-xs-offset-4 {
            margin-left: 33.33333333%;
        }

        .col-xs-offset-3 {
            margin-left: 25%;
        }

        .col-xs-offset-2 {
            margin-left: 16.66666667%;
        }

        .col-xs-offset-1 {
            margin-left: 8.33333333%;
        }

        .col-xs-offset-0 {
            margin-left: 0%;
        }

        @media (min-width: 768px) {
            .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
                float: left;
            }

            .col-sm-12 {
                width: 100%;
            }

            .col-sm-11 {
                width: 91.66666667%;
            }

            .col-sm-10 {
                width: 83.33333333%;
            }

            .col-sm-9 {
                width: 75%;
            }

            .col-sm-8 {
                width: 66.66666667%;
            }

            .col-sm-7 {
                width: 58.33333333%;
            }

            .col-sm-6 {
                width: 50%;
            }

            .col-sm-5 {
                width: 41.66666667%;
            }

            .col-sm-4 {
                width: 33.33333333%;
            }

            .col-sm-3 {
                width: 25%;
            }

            .col-sm-2 {
                width: 16.66666667%;
            }

            .col-sm-1 {
                width: 8.33333333%;
            }

            .col-sm-pull-12 {
                right: 100%;
            }

            .col-sm-pull-11 {
                right: 91.66666667%;
            }

            .col-sm-pull-10 {
                right: 83.33333333%;
            }

            .col-sm-pull-9 {
                right: 75%;
            }

            .col-sm-pull-8 {
                right: 66.66666667%;
            }

            .col-sm-pull-7 {
                right: 58.33333333%;
            }

            .col-sm-pull-6 {
                right: 50%;
            }

            .col-sm-pull-5 {
                right: 41.66666667%;
            }

            .col-sm-pull-4 {
                right: 33.33333333%;
            }

            .col-sm-pull-3 {
                right: 25%;
            }

            .col-sm-pull-2 {
                right: 16.66666667%;
            }

            .col-sm-pull-1 {
                right: 8.33333333%;
            }

            .col-sm-pull-0 {
                right: auto;
            }

            .col-sm-push-12 {
                left: 100%;
            }

            .col-sm-push-11 {
                left: 91.66666667%;
            }

            .col-sm-push-10 {
                left: 83.33333333%;
            }

            .col-sm-push-9 {
                left: 75%;
            }

            .col-sm-push-8 {
                left: 66.66666667%;
            }

            .col-sm-push-7 {
                left: 58.33333333%;
            }

            .col-sm-push-6 {
                left: 50%;
            }

            .col-sm-push-5 {
                left: 41.66666667%;
            }

            .col-sm-push-4 {
                left: 33.33333333%;
            }

            .col-sm-push-3 {
                left: 25%;
            }

            .col-sm-push-2 {
                left: 16.66666667%;
            }

            .col-sm-push-1 {
                left: 8.33333333%;
            }

            .col-sm-push-0 {
                left: auto;
            }

            .col-sm-offset-12 {
                margin-left: 100%;
            }

            .col-sm-offset-11 {
                margin-left: 91.66666667%;
            }

            .col-sm-offset-10 {
                margin-left: 83.33333333%;
            }

            .col-sm-offset-9 {
                margin-left: 75%;
            }

            .col-sm-offset-8 {
                margin-left: 66.66666667%;
            }

            .col-sm-offset-7 {
                margin-left: 58.33333333%;
            }

            .col-sm-offset-6 {
                margin-left: 50%;
            }

            .col-sm-offset-5 {
                margin-left: 41.66666667%;
            }

            .col-sm-offset-4 {
                margin-left: 33.33333333%;
            }

            .col-sm-offset-3 {
                margin-left: 25%;
            }

            .col-sm-offset-2 {
                margin-left: 16.66666667%;
            }

            .col-sm-offset-1 {
                margin-left: 8.33333333%;
            }

            .col-sm-offset-0 {
                margin-left: 0%;
            }
        }

        @media (min-width: 992px) {
            .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
                float: left;
            }

            .col-md-12 {
                width: 100%;
            }

            .col-md-11 {
                width: 91.66666667%;
            }

            .col-md-10 {
                width: 83.33333333%;
            }

            .col-md-9 {
                width: 75%;
            }

            .col-md-8 {
                width: 66.66666667%;
            }

            .col-md-7 {
                width: 58.33333333%;
            }

            .col-md-6 {
                width: 50%;
            }

            .col-md-5 {
                width: 41.66666667%;
            }

            .col-md-4 {
                width: 33.33333333%;
            }

            .col-md-3 {
                width: 25%;
            }

            .col-md-2 {
                width: 16.66666667%;
            }

            .col-md-1 {
                width: 8.33333333%;
            }

            .col-md-pull-12 {
                right: 100%;
            }

            .col-md-pull-11 {
                right: 91.66666667%;
            }

            .col-md-pull-10 {
                right: 83.33333333%;
            }

            .col-md-pull-9 {
                right: 75%;
            }

            .col-md-pull-8 {
                right: 66.66666667%;
            }

            .col-md-pull-7 {
                right: 58.33333333%;
            }

            .col-md-pull-6 {
                right: 50%;
            }

            .col-md-pull-5 {
                right: 41.66666667%;
            }

            .col-md-pull-4 {
                right: 33.33333333%;
            }

            .col-md-pull-3 {
                right: 25%;
            }

            .col-md-pull-2 {
                right: 16.66666667%;
            }

            .col-md-pull-1 {
                right: 8.33333333%;
            }

            .col-md-pull-0 {
                right: auto;
            }

            .col-md-push-12 {
                left: 100%;
            }

            .col-md-push-11 {
                left: 91.66666667%;
            }

            .col-md-push-10 {
                left: 83.33333333%;
            }

            .col-md-push-9 {
                left: 75%;
            }

            .col-md-push-8 {
                left: 66.66666667%;
            }

            .col-md-push-7 {
                left: 58.33333333%;
            }

            .col-md-push-6 {
                left: 50%;
            }

            .col-md-push-5 {
                left: 41.66666667%;
            }

            .col-md-push-4 {
                left: 33.33333333%;
            }

            .col-md-push-3 {
                left: 25%;
            }

            .col-md-push-2 {
                left: 16.66666667%;
            }

            .col-md-push-1 {
                left: 8.33333333%;
            }

            .col-md-push-0 {
                left: auto;
            }

            .col-md-offset-12 {
                margin-left: 100%;
            }

            .col-md-offset-11 {
                margin-left: 91.66666667%;
            }

            .col-md-offset-10 {
                margin-left: 83.33333333%;
            }

            .col-md-offset-9 {
                margin-left: 75%;
            }

            .col-md-offset-8 {
                margin-left: 66.66666667%;
            }

            .col-md-offset-7 {
                margin-left: 58.33333333%;
            }

            .col-md-offset-6 {
                margin-left: 50%;
            }

            .col-md-offset-5 {
                margin-left: 41.66666667%;
            }

            .col-md-offset-4 {
                margin-left: 33.33333333%;
            }

            .col-md-offset-3 {
                margin-left: 25%;
            }

            .col-md-offset-2 {
                margin-left: 16.66666667%;
            }

            .col-md-offset-1 {
                margin-left: 8.33333333%;
            }

            .col-md-offset-0 {
                margin-left: 0%;
            }
        }

        @media (min-width: 1200px) {
            .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
                float: left;
            }

            .col-lg-12 {
                width: 100%;
            }

            .col-lg-11 {
                width: 91.66666667%;
            }

            .col-lg-10 {
                width: 83.33333333%;
            }

            .col-lg-9 {
                width: 75%;
            }

            .col-lg-8 {
                width: 66.66666667%;
            }

            .col-lg-7 {
                width: 58.33333333%;
            }

            .col-lg-6 {
                width: 50%;
            }

            .col-lg-5 {
                width: 41.66666667%;
            }

            .col-lg-4 {
                width: 33.33333333%;
            }

            .col-lg-3 {
                width: 25%;
            }

            .col-lg-2 {
                width: 16.66666667%;
            }

            .col-lg-1 {
                width: 8.33333333%;
            }

            .col-lg-pull-12 {
                right: 100%;
            }

            .col-lg-pull-11 {
                right: 91.66666667%;
            }

            .col-lg-pull-10 {
                right: 83.33333333%;
            }

            .col-lg-pull-9 {
                right: 75%;
            }

            .col-lg-pull-8 {
                right: 66.66666667%;
            }

            .col-lg-pull-7 {
                right: 58.33333333%;
            }

            .col-lg-pull-6 {
                right: 50%;
            }

            .col-lg-pull-5 {
                right: 41.66666667%;
            }

            .col-lg-pull-4 {
                right: 33.33333333%;
            }

            .col-lg-pull-3 {
                right: 25%;
            }

            .col-lg-pull-2 {
                right: 16.66666667%;
            }

            .col-lg-pull-1 {
                right: 8.33333333%;
            }

            .col-lg-pull-0 {
                right: auto;
            }

            .col-lg-push-12 {
                left: 100%;
            }

            .col-lg-push-11 {
                left: 91.66666667%;
            }

            .col-lg-push-10 {
                left: 83.33333333%;
            }

            .col-lg-push-9 {
                left: 75%;
            }

            .col-lg-push-8 {
                left: 66.66666667%;
            }

            .col-lg-push-7 {
                left: 58.33333333%;
            }

            .col-lg-push-6 {
                left: 50%;
            }

            .col-lg-push-5 {
                left: 41.66666667%;
            }

            .col-lg-push-4 {
                left: 33.33333333%;
            }

            .col-lg-push-3 {
                left: 25%;
            }

            .col-lg-push-2 {
                left: 16.66666667%;
            }

            .col-lg-push-1 {
                left: 8.33333333%;
            }

            .col-lg-push-0 {
                left: auto;
            }

            .col-lg-offset-12 {
                margin-left: 100%;
            }

            .col-lg-offset-11 {
                margin-left: 91.66666667%;
            }

            .col-lg-offset-10 {
                margin-left: 83.33333333%;
            }

            .col-lg-offset-9 {
                margin-left: 75%;
            }

            .col-lg-offset-8 {
                margin-left: 66.66666667%;
            }

            .col-lg-offset-7 {
                margin-left: 58.33333333%;
            }

            .col-lg-offset-6 {
                margin-left: 50%;
            }

            .col-lg-offset-5 {
                margin-left: 41.66666667%;
            }

            .col-lg-offset-4 {
                margin-left: 33.33333333%;
            }

            .col-lg-offset-3 {
                margin-left: 25%;
            }

            .col-lg-offset-2 {
                margin-left: 16.66666667%;
            }

            .col-lg-offset-1 {
                margin-left: 8.33333333%;
            }

            .col-lg-offset-0 {
                margin-left: 0%;
            }
        }

        table {
            background-color: transparent;
        }

        caption {
            padding-top: 8px;
            padding-bottom: 8px;
            color: #777777;
            text-align: left;
        }

        th {
            text-align: left;
        }

        .table {
            width: 100%;
            max-width: 100%;
            margin-bottom: 18px;
        }

        .table > thead > tr > th,
        .table > tbody > tr > th,
        .table > tfoot > tr > th,
        .table > thead > tr > td,
        .table > tbody > tr > td,
        .table > tfoot > tr > td {
            padding: 8px;
            line-height: 1.42857143;
            vertical-align: top;
            border-top: 1px solid #ddd;
        }

        .table > thead > tr > th {
            vertical-align: bottom;
            border-bottom: 2px solid #ddd;
        }

        .table > caption + thead > tr:first-child > th,
        .table > colgroup + thead > tr:first-child > th,
        .table > thead:first-child > tr:first-child > th,
        .table > caption + thead > tr:first-child > td,
        .table > colgroup + thead > tr:first-child > td,
        .table > thead:first-child > tr:first-child > td {
            border-top: 0;
        }

        .table > tbody + tbody {
            border-top: 2px solid #ddd;
        }

        .table .table {
            background-color: #fff;
        }

        .table-condensed > thead > tr > th,
        .table-condensed > tbody > tr > th,
        .table-condensed > tfoot > tr > th,
        .table-condensed > thead > tr > td,
        .table-condensed > tbody > tr > td,
        .table-condensed > tfoot > tr > td {
            padding: 5px;
        }

        .table-bordered {
            border: 1px solid #ddd;
        }

        .table-bordered > thead > tr > th,
        .table-bordered > tbody > tr > th,
        .table-bordered > tfoot > tr > th,
        .table-bordered > thead > tr > td,
        .table-bordered > tbody > tr > td,
        .table-bordered > tfoot > tr > td {
            border: 1px solid #ddd;
        }

        .table-bordered > thead > tr > th,
        .table-bordered > thead > tr > td {
            border-bottom-width: 2px;
        }

        .table-striped > tbody > tr:nth-of-type(odd) {
            background-color: #f9f9f9;
        }

        .table-hover > tbody > tr:hover {
            background-color: #f5f5f5;
        }

        table col[class*="col-"] {
            position: static;
            float: none;
            display: table-column;
        }

        table td[class*="col-"],
        table th[class*="col-"] {
            position: static;
            float: none;
            display: table-cell;
        }

        .table > thead > tr > td.active,
        .table > tbody > tr > td.active,
        .table > tfoot > tr > td.active,
        .table > thead > tr > th.active,
        .table > tbody > tr > th.active,
        .table > tfoot > tr > th.active,
        .table > thead > tr.active > td,
        .table > tbody > tr.active > td,
        .table > tfoot > tr.active > td,
        .table > thead > tr.active > th,
        .table > tbody > tr.active > th,
        .table > tfoot > tr.active > th {
            background-color: #f5f5f5;
        }

        .table-hover > tbody > tr > td.active:hover,
        .table-hover > tbody > tr > th.active:hover,
        .table-hover > tbody > tr.active:hover > td,
        .table-hover > tbody > tr:hover > .active,
        .table-hover > tbody > tr.active:hover > th {
            background-color: #e8e8e8;
        }

        .table > thead > tr > td.success,
        .table > tbody > tr > td.success,
        .table > tfoot > tr > td.success,
        .table > thead > tr > th.success,
        .table > tbody > tr > th.success,
        .table > tfoot > tr > th.success,
        .table > thead > tr.success > td,
        .table > tbody > tr.success > td,
        .table > tfoot > tr.success > td,
        .table > thead > tr.success > th,
        .table > tbody > tr.success > th,
        .table > tfoot > tr.success > th {
            background-color: #dff0d8;
        }

        .table-hover > tbody > tr > td.success:hover,
        .table-hover > tbody > tr > th.success:hover,
        .table-hover > tbody > tr.success:hover > td,
        .table-hover > tbody > tr:hover > .success,
        .table-hover > tbody > tr.success:hover > th {
            background-color: #d0e9c6;
        }

        .table > thead > tr > td.info,
        .table > tbody > tr > td.info,
        .table > tfoot > tr > td.info,
        .table > thead > tr > th.info,
        .table > tbody > tr > th.info,
        .table > tfoot > tr > th.info,
        .table > thead > tr.info > td,
        .table > tbody > tr.info > td,
        .table > tfoot > tr.info > td,
        .table > thead > tr.info > th,
        .table > tbody > tr.info > th,
        .table > tfoot > tr.info > th {
            background-color: #d9edf7;
        }

        .table-hover > tbody > tr > td.info:hover,
        .table-hover > tbody > tr > th.info:hover,
        .table-hover > tbody > tr.info:hover > td,
        .table-hover > tbody > tr:hover > .info,
        .table-hover > tbody > tr.info:hover > th {
            background-color: #c4e3f3;
        }

        .table > thead > tr > td.warning,
        .table > tbody > tr > td.warning,
        .table > tfoot > tr > td.warning,
        .table > thead > tr > th.warning,
        .table > tbody > tr > th.warning,
        .table > tfoot > tr > th.warning,
        .table > thead > tr.warning > td,
        .table > tbody > tr.warning > td,
        .table > tfoot > tr.warning > td,
        .table > thead > tr.warning > th,
        .table > tbody > tr.warning > th,
        .table > tfoot > tr.warning > th {
            background-color: #fcf8e3;
        }

        .table-hover > tbody > tr > td.warning:hover,
        .table-hover > tbody > tr > th.warning:hover,
        .table-hover > tbody > tr.warning:hover > td,
        .table-hover > tbody > tr:hover > .warning,
        .table-hover > tbody > tr.warning:hover > th {
            background-color: #faf2cc;
        }

        .table > thead > tr > td.danger,
        .table > tbody > tr > td.danger,
        .table > tfoot > tr > td.danger,
        .table > thead > tr > th.danger,
        .table > tbody > tr > th.danger,
        .table > tfoot > tr > th.danger,
        .table > thead > tr.danger > td,
        .table > tbody > tr.danger > td,
        .table > tfoot > tr.danger > td,
        .table > thead > tr.danger > th,
        .table > tbody > tr.danger > th,
        .table > tfoot > tr.danger > th {
            background-color: #f2dede;
        }

        .table-hover > tbody > tr > td.danger:hover,
        .table-hover > tbody > tr > th.danger:hover,
        .table-hover > tbody > tr.danger:hover > td,
        .table-hover > tbody > tr:hover > .danger,
        .table-hover > tbody > tr.danger:hover > th {
            background-color: #ebcccc;
        }

        .table-responsive {
            overflow-x: auto;
            min-height: 0.01%;
        }

        @media screen and (max-width: 767px) {
            .table-responsive {
                width: 100%;
                margin-bottom: 13.5px;
                overflow-y: hidden;
                -ms-overflow-style: -ms-autohiding-scrollbar;
                border: 1px solid #ddd;
            }

            .table-responsive > .table {
                margin-bottom: 0;
            }

            .table-responsive > .table > thead > tr > th,
            .table-responsive > .table > tbody > tr > th,
            .table-responsive > .table > tfoot > tr > th,
            .table-responsive > .table > thead > tr > td,
            .table-responsive > .table > tbody > tr > td,
            .table-responsive > .table > tfoot > tr > td {
                white-space: nowrap;
            }

            .table-responsive > .table-bordered {
                border: 0;
            }

            .table-responsive > .table-bordered > thead > tr > th:first-child,
            .table-responsive > .table-bordered > tbody > tr > th:first-child,
            .table-responsive > .table-bordered > tfoot > tr > th:first-child,
            .table-responsive > .table-bordered > thead > tr > td:first-child,
            .table-responsive > .table-bordered > tbody > tr > td:first-child,
            .table-responsive > .table-bordered > tfoot > tr > td:first-child {
                border-left: 0;
            }

            .table-responsive > .table-bordered > thead > tr > th:last-child,
            .table-responsive > .table-bordered > tbody > tr > th:last-child,
            .table-responsive > .table-bordered > tfoot > tr > th:last-child,
            .table-responsive > .table-bordered > thead > tr > td:last-child,
            .table-responsive > .table-bordered > tbody > tr > td:last-child,
            .table-responsive > .table-bordered > tfoot > tr > td:last-child {
                border-right: 0;
            }

            .table-responsive > .table-bordered > tbody > tr:last-child > th,
            .table-responsive > .table-bordered > tfoot > tr:last-child > th,
            .table-responsive > .table-bordered > tbody > tr:last-child > td,
            .table-responsive > .table-bordered > tfoot > tr:last-child > td {
                border-bottom: 0;
            }
        }

        fieldset {
            padding: 0;
            margin: 0;
            border: 0;
            min-width: 0;
        }

        legend {
            display: block;
            width: 100%;
            padding: 0;
            margin-bottom: 18px;
            font-size: 19.5px;
            line-height: inherit;
            color: #333333;
            border: 0;
            border-bottom: 1px solid #e5e5e5;
        }

        label {
            display: inline-block;
            max-width: 100%;
            margin-bottom: 5px;
            font-weight: bold;
        }

        input[type="search"] {
            -webkit-box-sizing: border-box;
            -moz-box-sizing: border-box;
            box-sizing: border-box;
        }

        input[type="radio"],
        input[type="checkbox"] {
            margin: 4px 0 0;
            margin-top: 1px \9;
            line-height: normal;
        }

        input[type="file"] {
            display: block;
        }

        input[type="range"] {
            display: block;
            width: 100%;
        }

        select[multiple],
        select[size] {
            height: auto;
        }

        input[type="file"]:focus,
        input[type="radio"]:focus,
        input[type="checkbox"]:focus {
            outline: thin dotted;
            outline: 5px auto -webkit-focus-ring-color;
            outline-offset: -2px;
        }

        output {
            display: block;
            padding-top: 7px;
            font-size: 13px;
            line-height: 1.42857143;
            color: #555555;
        }

        .form-control {
            display: block;
            width: 100%;
            height: 32px;
            padding: 6px 12px;
            font-size: 13px;
            line-height: 1.42857143;
            color: #555555;
            background-color: #fff;
            background-image: none;
            border: 1px solid #ccc;
            border-radius: 2px;
            -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
            box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
            -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
            -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
            transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
        }

        .form-control:focus {
            border-color: #66afe9;
            outline: 0;
            -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6);
            box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6);
        }

        .form-control::-moz-placeholder {
            color: #999;
            opacity: 1;
        }

        .form-control:-ms-input-placeholder {
            color: #999;
        }

        .form-control::-webkit-input-placeholder {
            color: #999;
        }

        .form-control::-ms-expand {
            border: 0;
            background-color: transparent;
        }

        .form-control[disabled],
        .form-control[readonly],
        fieldset[disabled] .form-control {
            background-color: #eeeeee;
            opacity: 1;
        }

        .form-control[disabled],
        fieldset[disabled] .form-control {
            cursor: not-allowed;
        }

        textarea.form-control {
            height: auto;
        }

        input[type="search"] {
            -webkit-appearance: none;
        }

        @media screen and (-webkit-min-device-pixel-ratio: 0) {
            input[type="date"].form-control,
            input[type="time"].form-control,
            input[type="datetime-local"].form-control,
            input[type="month"].form-control {
                line-height: 32px;
            }

            input[type="date"].input-sm,
            input[type="time"].input-sm,
            input[type="datetime-local"].input-sm,
            input[type="month"].input-sm,
            .input-group-sm input[type="date"],
            .input-group-sm input[type="time"],
            .input-group-sm input[type="datetime-local"],
            .input-group-sm input[type="month"] {
                line-height: 30px;
            }

            input[type="date"].input-lg,
            input[type="time"].input-lg,
            input[type="datetime-local"].input-lg,
            input[type="month"].input-lg,
            .input-group-lg input[type="date"],
            .input-group-lg input[type="time"],
            .input-group-lg input[type="datetime-local"],
            .input-group-lg input[type="month"] {
                line-height: 45px;
            }
        }

        .form-group {
            margin-bottom: 15px;
        }

        .radio,
        .checkbox {
            position: relative;
            display: block;
            margin-top: 10px;
            margin-bottom: 10px;
        }

        .radio label,
        .checkbox label {
            min-height: 18px;
            padding-left: 20px;
            margin-bottom: 0;
            font-weight: normal;
            cursor: pointer;
        }

        .radio input[type="radio"],
        .radio-inline input[type="radio"],
        .checkbox input[type="checkbox"],
        .checkbox-inline input[type="checkbox"] {
            position: absolute;
            margin-left: -20px;
            margin-top: 4px \9;
        }

        .radio + .radio,
        .checkbox + .checkbox {
            margin-top: -5px;
        }

        .radio-inline,
        .checkbox-inline {
            position: relative;
            display: inline-block;
            padding-left: 20px;
            margin-bottom: 0;
            vertical-align: middle;
            font-weight: normal;
            cursor: pointer;
        }

        .radio-inline + .radio-inline,
        .checkbox-inline + .checkbox-inline {
            margin-top: 0;
            margin-left: 10px;
        }

        input[type="radio"][disabled],
        input[type="checkbox"][disabled],
        input[type="radio"].disabled,
        input[type="checkbox"].disabled,
        fieldset[disabled] input[type="radio"],
        fieldset[disabled] input[type="checkbox"] {
            cursor: not-allowed;
        }

        .radio-inline.disabled,
        .checkbox-inline.disabled,
        fieldset[disabled] .radio-inline,
        fieldset[disabled] .checkbox-inline {
            cursor: not-allowed;
        }

        .radio.disabled label,
        .checkbox.disabled label,
        fieldset[disabled] .radio label,
        fieldset[disabled] .checkbox label {
            cursor: not-allowed;
        }

        .form-control-static {
            padding-top: 7px;
            padding-bottom: 7px;
            margin-bottom: 0;
            min-height: 31px;
        }

        .form-control-static.input-lg,
        .form-control-static.input-sm {
            padding-left: 0;
            padding-right: 0;
        }

        .input-sm {
            height: 30px;
            padding: 5px 10px;
            font-size: 12px;
            line-height: 1.5;
            border-radius: 1px;
        }

        select.input-sm {
            height: 30px;
            line-height: 30px;
        }

        textarea.input-sm,
        select[multiple].input-sm {
            height: auto;
        }

        .form-group-sm .form-control {
            height: 30px;
            padding: 5px 10px;
            font-size: 12px;
            line-height: 1.5;
            border-radius: 1px;
        }

        .form-group-sm select.form-control {
            height: 30px;
            line-height: 30px;
        }

        .form-group-sm textarea.form-control,
        .form-group-sm select[multiple].form-control {
            height: auto;
        }

        .form-group-sm .form-control-static {
            height: 30px;
            min-height: 30px;
            padding: 6px 10px;
            font-size: 12px;
            line-height: 1.5;
        }

        .input-lg {
            height: 45px;
            padding: 10px 16px;
            font-size: 17px;
            line-height: 1.3333333;
            border-radius: 3px;
        }

        select.input-lg {
            height: 45px;
            line-height: 45px;
        }

        textarea.input-lg,
        select[multiple].input-lg {
            height: auto;
        }

        .form-group-lg .form-control {
            height: 45px;
            padding: 10px 16px;
            font-size: 17px;
            line-height: 1.3333333;
            border-radius: 3px;
        }

        .form-group-lg select.form-control {
            height: 45px;
            line-height: 45px;
        }

        .form-group-lg textarea.form-control,
        .form-group-lg select[multiple].form-control {
            height: auto;
        }

        .form-group-lg .form-control-static {
            height: 45px;
            min-height: 35px;
            padding: 11px 16px;
            font-size: 17px;
            line-height: 1.3333333;
        }

        .has-feedback {
            position: relative;
        }

        .has-feedback .form-control {
            padding-right: 40px;
        }

        .form-control-feedback {
            position: absolute;
            top: 0;
            right: 0;
            z-index: 2;
            display: block;
            width: 32px;
            height: 32px;
            line-height: 32px;
            text-align: center;
            pointer-events: none;
        }

        .input-lg + .form-control-feedback,
        .input-group-lg + .form-control-feedback,
        .form-group-lg .form-control + .form-control-feedback {
            width: 45px;
            height: 45px;
            line-height: 45px;
        }

        .input-sm + .form-control-feedback,
        .input-group-sm + .form-control-feedback,
        .form-group-sm .form-control + .form-control-feedback {
            width: 30px;
            height: 30px;
            line-height: 30px;
        }

        .has-success .help-block,
        .has-success .control-label,
        .has-success .radio,
        .has-success .checkbox,
        .has-success .radio-inline,
        .has-success .checkbox-inline,
        .has-success.radio label,
        .has-success.checkbox label,
        .has-success.radio-inline label,
        .has-success.checkbox-inline label {
            color: #3c763d;
        }

        .has-success .form-control {
            border-color: #3c763d;
            -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
            box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
        }

        .has-success .form-control:focus {
            border-color: #2b542c;
            -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
            box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
        }

        .has-success .input-group-addon {
            color: #3c763d;
            border-color: #3c763d;
            background-color: #dff0d8;
        }

        .has-success .form-control-feedback {
            color: #3c763d;
        }

        .has-warning .help-block,
        .has-warning .control-label,
        .has-warning .radio,
        .has-warning .checkbox,
        .has-warning .radio-inline,
        .has-warning .checkbox-inline,
        .has-warning.radio label,
        .has-warning.checkbox label,
        .has-warning.radio-inline label,
        .has-warning.checkbox-inline label {
            color: #8a6d3b;
        }

        .has-warning .form-control {
            border-color: #8a6d3b;
            -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
            box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
        }

        .has-warning .form-control:focus {
            border-color: #66512c;
            -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
            box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
        }

        .has-warning .input-group-addon {
            color: #8a6d3b;
            border-color: #8a6d3b;
            background-color: #fcf8e3;
        }

        .has-warning .form-control-feedback {
            color: #8a6d3b;
        }

        .has-error .help-block,
        .has-error .control-label,
        .has-error .radio,
        .has-error .checkbox,
        .has-error .radio-inline,
        .has-error .checkbox-inline,
        .has-error.radio label,
        .has-error.checkbox label,
        .has-error.radio-inline label,
        .has-error.checkbox-inline label {
            color: #a94442;
        }

        .has-error .form-control {
            border-color: #a94442;
            -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
            box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
        }

        .has-error .form-control:focus {
            border-color: #843534;
            -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
            box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
        }

        .has-error .input-group-addon {
            color: #a94442;
            border-color: #a94442;
            background-color: #f2dede;
        }

        .has-error .form-control-feedback {
            color: #a94442;
        }

        .has-feedback label ~ .form-control-feedback {
            top: 23px;
        }

        .has-feedback label.sr-only ~ .form-control-feedback {
            top: 0;
        }

        .help-block {
            display: block;
            margin-top: 5px;
            margin-bottom: 10px;
            color: #404040;
        }

        @media (min-width: 768px) {
            .form-inline .form-group {
                display: inline-block;
                margin-bottom: 0;
                vertical-align: middle;
            }

            .form-inline .form-control {
                display: inline-block;
                width: auto;
                vertical-align: middle;
            }

            .form-inline .form-control-static {
                display: inline-block;
            }

            .form-inline .input-group {
                display: inline-table;
                vertical-align: middle;
            }

            .form-inline .input-group .input-group-addon,
            .form-inline .input-group .input-group-btn,
            .form-inline .input-group .form-control {
                width: auto;
            }

            .form-inline .input-group > .form-control {
                width: 100%;
            }

            .form-inline .control-label {
                margin-bottom: 0;
                vertical-align: middle;
            }

            .form-inline .radio,
            .form-inline .checkbox {
                display: inline-block;
                margin-top: 0;
                margin-bottom: 0;
                vertical-align: middle;
            }

            .form-inline .radio label,
            .form-inline .checkbox label {
                padding-left: 0;
            }

            .form-inline .radio input[type="radio"],
            .form-inline .checkbox input[type="checkbox"] {
                position: relative;
                margin-left: 0;
            }

            .form-inline .has-feedback .form-control-feedback {
                top: 0;
            }
        }

        .form-horizontal .radio,
        .form-horizontal .checkbox,
        .form-horizontal .radio-inline,
        .form-horizontal .checkbox-inline {
            margin-top: 0;
            margin-bottom: 0;
            padding-top: 7px;
        }

        .form-horizontal .radio,
        .form-horizontal .checkbox {
            min-height: 25px;
        }

        .form-horizontal .form-group {
            margin-left: 0px;
            margin-right: 0px;
        }

        @media (min-width: 768px) {
            .form-horizontal .control-label {
                text-align: right;
                margin-bottom: 0;
                padding-top: 7px;
            }
        }

        .form-horizontal .has-feedback .form-control-feedback {
            right: 0px;
        }

        @media (min-width: 768px) {
            .form-horizontal .form-group-lg .control-label {
                padding-top: 11px;
                font-size: 17px;
            }
        }

        @media (min-width: 768px) {
            .form-horizontal .form-group-sm .control-label {
                padding-top: 6px;
                font-size: 12px;
            }
        }

        .btn {
            display: inline-block;
            margin-bottom: 0;
            font-weight: normal;
            text-align: center;
            vertical-align: middle;
            touch-action: manipulation;
            cursor: pointer;
            background-image: none;
            border: 1px solid transparent;
            white-space: nowrap;
            padding: 6px 12px;
            font-size: 13px;
            line-height: 1.42857143;
            border-radius: 2px;
            -webkit-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
            user-select: none;
        }

        .btn:focus,
        .btn:active:focus,
        .btn.active:focus,
        .btn.focus,
        .btn:active.focus,
        .btn.active.focus {
            outline: thin dotted;
            outline: 5px auto -webkit-focus-ring-color;
            outline-offset: -2px;
        }

        .btn:hover,
        .btn:focus,
        .btn.focus {
            color: #333;
            text-decoration: none;
        }

        .btn:active,
        .btn.active {
            outline: 0;
            background-image: none;
            -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
            box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
        }

        .btn.disabled,
        .btn[disabled],
        fieldset[disabled] .btn {
            cursor: not-allowed;
            opacity: 0.65;
            filter: alpha(opacity=65);
            -webkit-box-shadow: none;
            box-shadow: none;
        }

        a.btn.disabled,
        fieldset[disabled] a.btn {
            pointer-events: none;
        }

        .btn-default {
            color: #333;
            background-color: #fff;
            border-color: #ccc;
        }

        .btn-default:focus,
        .btn-default.focus {
            color: #333;
            background-color: #e6e6e6;
            border-color: #8c8c8c;
        }

        .btn-default:hover {
            color: #333;
            background-color: #e6e6e6;
            border-color: #adadad;
        }

        .btn-default:active,
        .btn-default.active,
        .open > .dropdown-toggle.btn-default {
            color: #333;
            background-color: #e6e6e6;
            border-color: #adadad;
        }

        .btn-default:active:hover,
        .btn-default.active:hover,
        .open > .dropdown-toggle.btn-default:hover,
        .btn-default:active:focus,
        .btn-default.active:focus,
        .open > .dropdown-toggle.btn-default:focus,
        .btn-default:active.focus,
        .btn-default.active.focus,
        .open > .dropdown-toggle.btn-default.focus {
            color: #333;
            background-color: #d4d4d4;
            border-color: #8c8c8c;
        }

        .btn-default:active,
        .btn-default.active,
        .open > .dropdown-toggle.btn-default {
            background-image: none;
        }

        .btn-default.disabled:hover,
        .btn-default[disabled]:hover,
        fieldset[disabled] .btn-default:hover,
        .btn-default.disabled:focus,
        .btn-default[disabled]:focus,
        fieldset[disabled] .btn-default:focus,
        .btn-default.disabled.focus,
        .btn-default[disabled].focus,
        fieldset[disabled] .btn-default.focus {
            background-color: #fff;
            border-color: #ccc;
        }

        .btn-default .badge {
            color: #fff;
            background-color: #333;
        }

        .btn-primary {
            color: #fff;
            background-color: #337ab7;
            border-color: #2e6da4;
        }

        .btn-primary:focus,
        .btn-primary.focus {
            color: #fff;
            background-color: #286090;
            border-color: #122b40;
        }

        .btn-primary:hover {
            color: #fff;
            background-color: #286090;
            border-color: #204d74;
        }

        .btn-primary:active,
        .btn-primary.active,
        .open > .dropdown-toggle.btn-primary {
            color: #fff;
            background-color: #286090;
            border-color: #204d74;
        }

        .btn-primary:active:hover,
        .btn-primary.active:hover,
        .open > .dropdown-toggle.btn-primary:hover,
        .btn-primary:active:focus,
        .btn-primary.active:focus,
        .open > .dropdown-toggle.btn-primary:focus,
        .btn-primary:active.focus,
        .btn-primary.active.focus,
        .open > .dropdown-toggle.btn-primary.focus {
            color: #fff;
            background-color: #204d74;
            border-color: #122b40;
        }

        .btn-primary:active,
        .btn-primary.active,
        .open > .dropdown-toggle.btn-primary {
            background-image: none;
        }

        .btn-primary.disabled:hover,
        .btn-primary[disabled]:hover,
        fieldset[disabled] .btn-primary:hover,
        .btn-primary.disabled:focus,
        .btn-primary[disabled]:focus,
        fieldset[disabled] .btn-primary:focus,
        .btn-primary.disabled.focus,
        .btn-primary[disabled].focus,
        fieldset[disabled] .btn-primary.focus {
            background-color: #337ab7;
            border-color: #2e6da4;
        }

        .btn-primary .badge {
            color: #337ab7;
            background-color: #fff;
        }

        .btn-success {
            color: #fff;
            background-color: #5cb85c;
            border-color: #4cae4c;
        }

        .btn-success:focus,
        .btn-success.focus {
            color: #fff;
            background-color: #449d44;
            border-color: #255625;
        }

        .btn-success:hover {
            color: #fff;
            background-color: #449d44;
            border-color: #398439;
        }

        .btn-success:active,
        .btn-success.active,
        .open > .dropdown-toggle.btn-success {
            color: #fff;
            background-color: #449d44;
            border-color: #398439;
        }

        .btn-success:active:hover,
        .btn-success.active:hover,
        .open > .dropdown-toggle.btn-success:hover,
        .btn-success:active:focus,
        .btn-success.active:focus,
        .open > .dropdown-toggle.btn-success:focus,
        .btn-success:active.focus,
        .btn-success.active.focus,
        .open > .dropdown-toggle.btn-success.focus {
            color: #fff;
            background-color: #398439;
            border-color: #255625;
        }

        .btn-success:active,
        .btn-success.active,
        .open > .dropdown-toggle.btn-success {
            background-image: none;
        }

        .btn-success.disabled:hover,
        .btn-success[disabled]:hover,
        fieldset[disabled] .btn-success:hover,
        .btn-success.disabled:focus,
        .btn-success[disabled]:focus,
        fieldset[disabled] .btn-success:focus,
        .btn-success.disabled.focus,
        .btn-success[disabled].focus,
        fieldset[disabled] .btn-success.focus {
            background-color: #5cb85c;
            border-color: #4cae4c;
        }

        .btn-success .badge {
            color: #5cb85c;
            background-color: #fff;
        }

        .btn-info {
            color: #fff;
            background-color: #5bc0de;
            border-color: #46b8da;
        }

        .btn-info:focus,
        .btn-info.focus {
            color: #fff;
            background-color: #31b0d5;
            border-color: #1b6d85;
        }

        .btn-info:hover {
            color: #fff;
            background-color: #31b0d5;
            border-color: #269abc;
        }

        .btn-info:active,
        .btn-info.active,
        .open > .dropdown-toggle.btn-info {
            color: #fff;
            background-color: #31b0d5;
            border-color: #269abc;
        }

        .btn-info:active:hover,
        .btn-info.active:hover,
        .open > .dropdown-toggle.btn-info:hover,
        .btn-info:active:focus,
        .btn-info.active:focus,
        .open > .dropdown-toggle.btn-info:focus,
        .btn-info:active.focus,
        .btn-info.active.focus,
        .open > .dropdown-toggle.btn-info.focus {
            color: #fff;
            background-color: #269abc;
            border-color: #1b6d85;
        }

        .btn-info:active,
        .btn-info.active,
        .open > .dropdown-toggle.btn-info {
            background-image: none;
        }

        .btn-info.disabled:hover,
        .btn-info[disabled]:hover,
        fieldset[disabled] .btn-info:hover,
        .btn-info.disabled:focus,
        .btn-info[disabled]:focus,
        fieldset[disabled] .btn-info:focus,
        .btn-info.disabled.focus,
        .btn-info[disabled].focus,
        fieldset[disabled] .btn-info.focus {
            background-color: #5bc0de;
            border-color: #46b8da;
        }

        .btn-info .badge {
            color: #5bc0de;
            background-color: #fff;
        }

        .btn-warning {
            color: #fff;
            background-color: #f0ad4e;
            border-color: #eea236;
        }

        .btn-warning:focus,
        .btn-warning.focus {
            color: #fff;
            background-color: #ec971f;
            border-color: #985f0d;
        }

        .btn-warning:hover {
            color: #fff;
            background-color: #ec971f;
            border-color: #d58512;
        }

        .btn-warning:active,
        .btn-warning.active,
        .open > .dropdown-toggle.btn-warning {
            color: #fff;
            background-color: #ec971f;
            border-color: #d58512;
        }

        .btn-warning:active:hover,
        .btn-warning.active:hover,
        .open > .dropdown-toggle.btn-warning:hover,
        .btn-warning:active:focus,
        .btn-warning.active:focus,
        .open > .dropdown-toggle.btn-warning:focus,
        .btn-warning:active.focus,
        .btn-warning.active.focus,
        .open > .dropdown-toggle.btn-warning.focus {
            color: #fff;
            background-color: #d58512;
            border-color: #985f0d;
        }

        .btn-warning:active,
        .btn-warning.active,
        .open > .dropdown-toggle.btn-warning {
            background-image: none;
        }

        .btn-warning.disabled:hover,
        .btn-warning[disabled]:hover,
        fieldset[disabled] .btn-warning:hover,
        .btn-warning.disabled:focus,
        .btn-warning[disabled]:focus,
        fieldset[disabled] .btn-warning:focus,
        .btn-warning.disabled.focus,
        .btn-warning[disabled].focus,
        fieldset[disabled] .btn-warning.focus {
            background-color: #f0ad4e;
            border-color: #eea236;
        }

        .btn-warning .badge {
            color: #f0ad4e;
            background-color: #fff;
        }

        .btn-danger {
            color: #fff;
            background-color: #d9534f;
            border-color: #d43f3a;
        }

        .btn-danger:focus,
        .btn-danger.focus {
            color: #fff;
            background-color: #c9302c;
            border-color: #761c19;
        }

        .btn-danger:hover {
            color: #fff;
            background-color: #c9302c;
            border-color: #ac2925;
        }

        .btn-danger:active,
        .btn-danger.active,
        .open > .dropdown-toggle.btn-danger {
            color: #fff;
            background-color: #c9302c;
            border-color: #ac2925;
        }

        .btn-danger:active:hover,
        .btn-danger.active:hover,
        .open > .dropdown-toggle.btn-danger:hover,
        .btn-danger:active:focus,
        .btn-danger.active:focus,
        .open > .dropdown-toggle.btn-danger:focus,
        .btn-danger:active.focus,
        .btn-danger.active.focus,
        .open > .dropdown-toggle.btn-danger.focus {
            color: #fff;
            background-color: #ac2925;
            border-color: #761c19;
        }

        .btn-danger:active,
        .btn-danger.active,
        .open > .dropdown-toggle.btn-danger {
            background-image: none;
        }

        .btn-danger.disabled:hover,
        .btn-danger[disabled]:hover,
        fieldset[disabled] .btn-danger:hover,
        .btn-danger.disabled:focus,
        .btn-danger[disabled]:focus,
        fieldset[disabled] .btn-danger:focus,
        .btn-danger.disabled.focus,
        .btn-danger[disabled].focus,
        fieldset[disabled] .btn-danger.focus {
            background-color: #d9534f;
            border-color: #d43f3a;
        }

        .btn-danger .badge {
            color: #d9534f;
            background-color: #fff;
        }

        .btn-link {
            color: #337ab7;
            font-weight: normal;
            border-radius: 0;
        }

        .btn-link,
        .btn-link:active,
        .btn-link.active,
        .btn-link[disabled],
        fieldset[disabled] .btn-link {
            background-color: transparent;
            -webkit-box-shadow: none;
            box-shadow: none;
        }

        .btn-link,
        .btn-link:hover,
        .btn-link:focus,
        .btn-link:active {
            border-color: transparent;
        }

        .btn-link:hover,
        .btn-link:focus {
            color: #23527c;
            text-decoration: underline;
            background-color: transparent;
        }

        .btn-link[disabled]:hover,
        fieldset[disabled] .btn-link:hover,
        .btn-link[disabled]:focus,
        fieldset[disabled] .btn-link:focus {
            color: #777777;
            text-decoration: none;
        }

        .btn-lg,
        .btn-group-lg > .btn {
            padding: 10px 16px;
            font-size: 17px;
            line-height: 1.3333333;
            border-radius: 3px;
        }

        .btn-sm,
        .btn-group-sm > .btn {
            padding: 5px 10px;
            font-size: 12px;
            line-height: 1.5;
            border-radius: 1px;
        }

        .btn-xs,
        .btn-group-xs > .btn {
            padding: 1px 5px;
            font-size: 12px;
            line-height: 1.5;
            border-radius: 1px;
        }

        .btn-block {
            display: block;
            width: 100%;
        }

        .btn-block + .btn-block {
            margin-top: 5px;
        }

        input[type="submit"].btn-block,
        input[type="reset"].btn-block,
        input[type="button"].btn-block {
            width: 100%;
        }

        .fade {
            opacity: 0;
            -webkit-transition: opacity 0.15s linear;
            -o-transition: opacity 0.15s linear;
            transition: opacity 0.15s linear;
        }

        .fade.in {
            opacity: 1;
        }

        .collapse {
            display: none;
        }

        .collapse.in {
            display: block;
        }

        tr.collapse.in {
            display: table-row;
        }

        tbody.collapse.in {
            display: table-row-group;
        }

        .collapsing {
            position: relative;
            height: 0;
            overflow: hidden;
            -webkit-transition-property: height, visibility;
            transition-property: height, visibility;
            -webkit-transition-duration: 0.35s;
            transition-duration: 0.35s;
            -webkit-transition-timing-function: ease;
            transition-timing-function: ease;
        }

        .caret {
            display: inline-block;
            width: 0;
            height: 0;
            margin-left: 2px;
            vertical-align: middle;
            border-top: 4px dashed;
            border-top: 4px solid \9;
            border-right: 4px solid transparent;
            border-left: 4px solid transparent;
        }

        .dropup,
        .dropdown {
            position: relative;
        }

        .dropdown-toggle:focus {
            outline: 0;
        }

        .dropdown-menu {
            position: absolute;
            top: 100%;
            left: 0;
            z-index: 1000;
            display: none;
            float: left;
            min-width: 160px;
            padding: 5px 0;
            margin: 2px 0 0;
            list-style: none;
            font-size: 13px;
            text-align: left;
            background-color: #fff;
            border: 1px solid #ccc;
            border: 1px solid rgba(0, 0, 0, 0.15);
            border-radius: 2px;
            -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
            box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
            background-clip: padding-box;
        }

        .dropdown-menu.pull-right {
            right: 0;
            left: auto;
        }

        .dropdown-menu .divider {
            height: 1px;
            margin: 8px 0;
            overflow: hidden;
            background-color: #e5e5e5;
        }

        .dropdown-menu > li > a {
            display: block;
            padding: 3px 20px;
            clear: both;
            font-weight: normal;
            line-height: 1.42857143;
            color: #333333;
            white-space: nowrap;
        }

        .dropdown-menu > li > a:hover,
        .dropdown-menu > li > a:focus {
            text-decoration: none;
            color: #262626;
            background-color: #f5f5f5;
        }

        .dropdown-menu > .active > a,
        .dropdown-menu > .active > a:hover,
        .dropdown-menu > .active > a:focus {
            color: #fff;
            text-decoration: none;
            outline: 0;
            background-color: #337ab7;
        }

        .dropdown-menu > .disabled > a,
        .dropdown-menu > .disabled > a:hover,
        .dropdown-menu > .disabled > a:focus {
            color: #777777;
        }

        .dropdown-menu > .disabled > a:hover,
        .dropdown-menu > .disabled > a:focus {
            text-decoration: none;
            background-color: transparent;
            background-image: none;
            filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
            cursor: not-allowed;
        }

        .open > .dropdown-menu {
            display: block;
        }

        .open > a {
            outline: 0;
        }

        .dropdown-menu-right {
            left: auto;
            right: 0;
        }

        .dropdown-menu-left {
            left: 0;
            right: auto;
        }

        .dropdown-header {
            display: block;
            padding: 3px 20px;
            font-size: 12px;
            line-height: 1.42857143;
            color: #777777;
            white-space: nowrap;
        }

        .dropdown-backdrop {
            position: fixed;
            left: 0;
            right: 0;
            bottom: 0;
            top: 0;
            z-index: 990;
        }

        .pull-right > .dropdown-menu {
            right: 0;
            left: auto;
        }

        .dropup .caret,
        .navbar-fixed-bottom .dropdown .caret {
            border-top: 0;
            border-bottom: 4px dashed;
            border-bottom: 4px solid \9;
            content: "";
        }

        .dropup .dropdown-menu,
        .navbar-fixed-bottom .dropdown .dropdown-menu {
            top: auto;
            bottom: 100%;
            margin-bottom: 2px;
        }

        @media (min-width: 541px) {
            .navbar-right .dropdown-menu {
                left: auto;
                right: 0;
            }

            .navbar-right .dropdown-menu-left {
                left: 0;
                right: auto;
            }
        }

        .btn-group,
        .btn-group-vertical {
            position: relative;
            display: inline-block;
            vertical-align: middle;
        }

        .btn-group > .btn,
        .btn-group-vertical > .btn {
            position: relative;
            float: left;
        }

        .btn-group > .btn:hover,
        .btn-group-vertical > .btn:hover,
        .btn-group > .btn:focus,
        .btn-group-vertical > .btn:focus,
        .btn-group > .btn:active,
        .btn-group-vertical > .btn:active,
        .btn-group > .btn.active,
        .btn-group-vertical > .btn.active {
            z-index: 2;
        }

        .btn-group .btn + .btn,
        .btn-group .btn + .btn-group,
        .btn-group .btn-group + .btn,
        .btn-group .btn-group + .btn-group {
            margin-left: -1px;
        }

        .btn-toolbar {
            margin-left: -5px;
        }

        .btn-toolbar .btn,
        .btn-toolbar .btn-group,
        .btn-toolbar .input-group {
            float: left;
        }

        .btn-toolbar > .btn,
        .btn-toolbar > .btn-group,
        .btn-toolbar > .input-group {
            margin-left: 5px;
        }

        .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
            border-radius: 0;
        }

        .btn-group > .btn:first-child {
            margin-left: 0;
        }

        .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
            border-bottom-right-radius: 0;
            border-top-right-radius: 0;
        }

        .btn-group > .btn:last-child:not(:first-child),
        .btn-group > .dropdown-toggle:not(:first-child) {
            border-bottom-left-radius: 0;
            border-top-left-radius: 0;
        }

        .btn-group > .btn-group {
            float: left;
        }

        .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
            border-radius: 0;
        }

        .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
        .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
            border-bottom-right-radius: 0;
            border-top-right-radius: 0;
        }

        .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
            border-bottom-left-radius: 0;
            border-top-left-radius: 0;
        }

        .btn-group .dropdown-toggle:active,
        .btn-group.open .dropdown-toggle {
            outline: 0;
        }

        .btn-group > .btn + .dropdown-toggle {
            padding-left: 8px;
            padding-right: 8px;
        }

        .btn-group > .btn-lg + .dropdown-toggle {
            padding-left: 12px;
            padding-right: 12px;
        }

        .btn-group.open .dropdown-toggle {
            -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
            box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
        }

        .btn-group.open .dropdown-toggle.btn-link {
            -webkit-box-shadow: none;
            box-shadow: none;
        }

        .btn .caret {
            margin-left: 0;
        }

        .btn-lg .caret {
            border-width: 5px 5px 0;
            border-bottom-width: 0;
        }

        .dropup .btn-lg .caret {
            border-width: 0 5px 5px;
        }

        .btn-group-vertical > .btn,
        .btn-group-vertical > .btn-group,
        .btn-group-vertical > .btn-group > .btn {
            display: block;
            float: none;
            width: 100%;
            max-width: 100%;
        }

        .btn-group-vertical > .btn-group > .btn {
            float: none;
        }

        .btn-group-vertical > .btn + .btn,
        .btn-group-vertical > .btn + .btn-group,
        .btn-group-vertical > .btn-group + .btn,
        .btn-group-vertical > .btn-group + .btn-group {
            margin-top: -1px;
            margin-left: 0;
        }

        .btn-group-vertical > .btn:not(:first-child):not(:last-child) {
            border-radius: 0;
        }

        .btn-group-vertical > .btn:first-child:not(:last-child) {
            border-top-right-radius: 2px;
            border-top-left-radius: 2px;
            border-bottom-right-radius: 0;
            border-bottom-left-radius: 0;
        }

        .btn-group-vertical > .btn:last-child:not(:first-child) {
            border-top-right-radius: 0;
            border-top-left-radius: 0;
            border-bottom-right-radius: 2px;
            border-bottom-left-radius: 2px;
        }

        .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
            border-radius: 0;
        }

        .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
        .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
            border-bottom-right-radius: 0;
            border-bottom-left-radius: 0;
        }

        .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
            border-top-right-radius: 0;
            border-top-left-radius: 0;
        }

        .btn-group-justified {
            display: table;
            width: 100%;
            table-layout: fixed;
            border-collapse: separate;
        }

        .btn-group-justified > .btn,
        .btn-group-justified > .btn-group {
            float: none;
            display: table-cell;
            width: 1%;
        }

        .btn-group-justified > .btn-group .btn {
            width: 100%;
        }

        .btn-group-justified > .btn-group .dropdown-menu {
            left: auto;
        }

        [data-toggle="buttons"] > .btn input[type="radio"],
        [data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
        [data-toggle="buttons"] > .btn input[type="checkbox"],
        [data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
            position: absolute;
            clip: rect(0, 0, 0, 0);
            pointer-events: none;
        }

        .input-group {
            position: relative;
            display: table;
            border-collapse: separate;
        }

        .input-group[class*="col-"] {
            float: none;
            padding-left: 0;
            padding-right: 0;
        }

        .input-group .form-control {
            position: relative;
            z-index: 2;
            float: left;
            width: 100%;
            margin-bottom: 0;
        }

        .input-group .form-control:focus {
            z-index: 3;
        }

        .input-group-lg > .form-control,
        .input-group-lg > .input-group-addon,
        .input-group-lg > .input-group-btn > .btn {
            height: 45px;
            padding: 10px 16px;
            font-size: 17px;
            line-height: 1.3333333;
            border-radius: 3px;
        }

        select.input-group-lg > .form-control,
        select.input-group-lg > .input-group-addon,
        select.input-group-lg > .input-group-btn > .btn {
            height: 45px;
            line-height: 45px;
        }

        textarea.input-group-lg > .form-control,
        textarea.input-group-lg > .input-group-addon,
        textarea.input-group-lg > .input-group-btn > .btn,
        select[multiple].input-group-lg > .form-control,
        select[multiple].input-group-lg > .input-group-addon,
        select[multiple].input-group-lg > .input-group-btn > .btn {
            height: auto;
        }

        .input-group-sm > .form-control,
        .input-group-sm > .input-group-addon,
        .input-group-sm > .input-group-btn > .btn {
            height: 30px;
            padding: 5px 10px;
            font-size: 12px;
            line-height: 1.5;
            border-radius: 1px;
        }

        select.input-group-sm > .form-control,
        select.input-group-sm > .input-group-addon,
        select.input-group-sm > .input-group-btn > .btn {
            height: 30px;
            line-height: 30px;
        }

        textarea.input-group-sm > .form-control,
        textarea.input-group-sm > .input-group-addon,
        textarea.input-group-sm > .input-group-btn > .btn,
        select[multiple].input-group-sm > .form-control,
        select[multiple].input-group-sm > .input-group-addon,
        select[multiple].input-group-sm > .input-group-btn > .btn {
            height: auto;
        }

        .input-group-addon,
        .input-group-btn,
        .input-group .form-control {
            display: table-cell;
        }

        .input-group-addon:not(:first-child):not(:last-child),
        .input-group-btn:not(:first-child):not(:last-child),
        .input-group .form-control:not(:first-child):not(:last-child) {
            border-radius: 0;
        }

        .input-group-addon,
        .input-group-btn {
            width: 1%;
            white-space: nowrap;
            vertical-align: middle;
        }

        .input-group-addon {
            padding: 6px 12px;
            font-size: 13px;
            font-weight: normal;
            line-height: 1;
            color: #555555;
            text-align: center;
            background-color: #eeeeee;
            border: 1px solid #ccc;
            border-radius: 2px;
        }

        .input-group-addon.input-sm {
            padding: 5px 10px;
            font-size: 12px;
            border-radius: 1px;
        }

        .input-group-addon.input-lg {
            padding: 10px 16px;
            font-size: 17px;
            border-radius: 3px;
        }

        .input-group-addon input[type="radio"],
        .input-group-addon input[type="checkbox"] {
            margin-top: 0;
        }

        .input-group .form-control:first-child,
        .input-group-addon:first-child,
        .input-group-btn:first-child > .btn,
        .input-group-btn:first-child > .btn-group > .btn,
        .input-group-btn:first-child > .dropdown-toggle,
        .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
        .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
            border-bottom-right-radius: 0;
            border-top-right-radius: 0;
        }

        .input-group-addon:first-child {
            border-right: 0;
        }

        .input-group .form-control:last-child,
        .input-group-addon:last-child,
        .input-group-btn:last-child > .btn,
        .input-group-btn:last-child > .btn-group > .btn,
        .input-group-btn:last-child > .dropdown-toggle,
        .input-group-btn:first-child > .btn:not(:first-child),
        .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
            border-bottom-left-radius: 0;
            border-top-left-radius: 0;
        }

        .input-group-addon:last-child {
            border-left: 0;
        }

        .input-group-btn {
            position: relative;
            font-size: 0;
            white-space: nowrap;
        }

        .input-group-btn > .btn {
            position: relative;
        }

        .input-group-btn > .btn + .btn {
            margin-left: -1px;
        }

        .input-group-btn > .btn:hover,
        .input-group-btn > .btn:focus,
        .input-group-btn > .btn:active {
            z-index: 2;
        }

        .input-group-btn:first-child > .btn,
        .input-group-btn:first-child > .btn-group {
            margin-right: -1px;
        }

        .input-group-btn:last-child > .btn,
        .input-group-btn:last-child > .btn-group {
            z-index: 2;
            margin-left: -1px;
        }

        .nav {
            margin-bottom: 0;
            padding-left: 0;
            list-style: none;
        }

        .nav > li {
            position: relative;
            display: block;
        }

        .nav > li > a {
            position: relative;
            display: block;
            padding: 10px 15px;
        }

        .nav > li > a:hover,
        .nav > li > a:focus {
            text-decoration: none;
            background-color: #eeeeee;
        }

        .nav > li.disabled > a {
            color: #777777;
        }

        .nav > li.disabled > a:hover,
        .nav > li.disabled > a:focus {
            color: #777777;
            text-decoration: none;
            background-color: transparent;
            cursor: not-allowed;
        }

        .nav .open > a,
        .nav .open > a:hover,
        .nav .open > a:focus {
            background-color: #eeeeee;
            border-color: #337ab7;
        }

        .nav .nav-divider {
            height: 1px;
            margin: 8px 0;
            overflow: hidden;
            background-color: #e5e5e5;
        }

        .nav > li > a > img {
            max-width: none;
        }

        .nav-tabs {
            border-bottom: 1px solid #ddd;
        }

        .nav-tabs > li {
            float: left;
            margin-bottom: -1px;
        }

        .nav-tabs > li > a {
            margin-right: 2px;
            line-height: 1.42857143;
            border: 1px solid transparent;
            border-radius: 2px 2px 0 0;
        }

        .nav-tabs > li > a:hover {
            border-color: #eeeeee #eeeeee #ddd;
        }

        .nav-tabs > li.active > a,
        .nav-tabs > li.active > a:hover,
        .nav-tabs > li.active > a:focus {
            color: #555555;
            background-color: #fff;
            border: 1px solid #ddd;
            border-bottom-color: transparent;
            cursor: default;
        }

        .nav-tabs.nav-justified {
            width: 100%;
            border-bottom: 0;
        }

        .nav-tabs.nav-justified > li {
            float: none;
        }

        .nav-tabs.nav-justified > li > a {
            text-align: center;
            margin-bottom: 5px;
        }

        .nav-tabs.nav-justified > .dropdown .dropdown-menu {
            top: auto;
            left: auto;
        }

        @media (min-width: 768px) {
            .nav-tabs.nav-justified > li {
                display: table-cell;
                width: 1%;
            }

            .nav-tabs.nav-justified > li > a {
                margin-bottom: 0;
            }
        }

        .nav-tabs.nav-justified > li > a {
            margin-right: 0;
            border-radius: 2px;
        }

        .nav-tabs.nav-justified > .active > a,
        .nav-tabs.nav-justified > .active > a:hover,
        .nav-tabs.nav-justified > .active > a:focus {
            border: 1px solid #ddd;
        }

        @media (min-width: 768px) {
            .nav-tabs.nav-justified > li > a {
                border-bottom: 1px solid #ddd;
                border-radius: 2px 2px 0 0;
            }

            .nav-tabs.nav-justified > .active > a,
            .nav-tabs.nav-justified > .active > a:hover,
            .nav-tabs.nav-justified > .active > a:focus {
                border-bottom-color: #fff;
            }
        }

        .nav-pills > li {
            float: left;
        }

        .nav-pills > li > a {
            border-radius: 2px;
        }

        .nav-pills > li + li {
            margin-left: 2px;
        }

        .nav-pills > li.active > a,
        .nav-pills > li.active > a:hover,
        .nav-pills > li.active > a:focus {
            color: #fff;
            background-color: #337ab7;
        }

        .nav-stacked > li {
            float: none;
        }

        .nav-stacked > li + li {
            margin-top: 2px;
            margin-left: 0;
        }

        .nav-justified {
            width: 100%;
        }

        .nav-justified > li {
            float: none;
        }

        .nav-justified > li > a {
            text-align: center;
            margin-bottom: 5px;
        }

        .nav-justified > .dropdown .dropdown-menu {
            top: auto;
            left: auto;
        }

        @media (min-width: 768px) {
            .nav-justified > li {
                display: table-cell;
                width: 1%;
            }

            .nav-justified > li > a {
                margin-bottom: 0;
            }
        }

        .nav-tabs-justified {
            border-bottom: 0;
        }

        .nav-tabs-justified > li > a {
            margin-right: 0;
            border-radius: 2px;
        }

        .nav-tabs-justified > .active > a,
        .nav-tabs-justified > .active > a:hover,
        .nav-tabs-justified > .active > a:focus {
            border: 1px solid #ddd;
        }

        @media (min-width: 768px) {
            .nav-tabs-justified > li > a {
                border-bottom: 1px solid #ddd;
                border-radius: 2px 2px 0 0;
            }

            .nav-tabs-justified > .active > a,
            .nav-tabs-justified > .active > a:hover,
            .nav-tabs-justified > .active > a:focus {
                border-bottom-color: #fff;
            }
        }

        .tab-content > .tab-pane {
            display: none;
        }

        .tab-content > .active {
            display: block;
        }

        .nav-tabs .dropdown-menu {
            margin-top: -1px;
            border-top-right-radius: 0;
            border-top-left-radius: 0;
        }

        .navbar {
            position: relative;
            min-height: 30px;
            margin-bottom: 18px;
            border: 1px solid transparent;
        }

        @media (min-width: 541px) {
            .navbar {
                border-radius: 2px;
            }
        }

        @media (min-width: 541px) {
            .navbar-header {
                float: left;
            }
        }

        .navbar-collapse {
            overflow-x: visible;
            padding-right: 0px;
            padding-left: 0px;
            border-top: 1px solid transparent;
            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
            -webkit-overflow-scrolling: touch;
        }

        .navbar-collapse.in {
            overflow-y: auto;
        }

        @media (min-width: 541px) {
            .navbar-collapse {
                width: auto;
                border-top: 0;
                box-shadow: none;
            }

            .navbar-collapse.collapse {
                display: block !important;
                height: auto !important;
                padding-bottom: 0;
                overflow: visible !important;
            }

            .navbar-collapse.in {
                overflow-y: visible;
            }

            .navbar-fixed-top .navbar-collapse,
            .navbar-static-top .navbar-collapse,
            .navbar-fixed-bottom .navbar-collapse {
                padding-left: 0;
                padding-right: 0;
            }
        }

        .navbar-fixed-top .navbar-collapse,
        .navbar-fixed-bottom .navbar-collapse {
            max-height: 340px;
        }

        @media (max-device-width: 540px) and (orientation: landscape) {
            .navbar-fixed-top .navbar-collapse,
            .navbar-fixed-bottom .navbar-collapse {
                max-height: 200px;
            }
        }

        .container > .navbar-header,
        .container-fluid > .navbar-header,
        .container > .navbar-collapse,
        .container-fluid > .navbar-collapse {
            margin-right: 0px;
            margin-left: 0px;
        }

        @media (min-width: 541px) {
            .container > .navbar-header,
            .container-fluid > .navbar-header,
            .container > .navbar-collapse,
            .container-fluid > .navbar-collapse {
                margin-right: 0;
                margin-left: 0;
            }
        }

        .navbar-static-top {
            z-index: 1000;
            border-width: 0 0 1px;
        }

        @media (min-width: 541px) {
            .navbar-static-top {
                border-radius: 0;
            }
        }

        .navbar-fixed-top,
        .navbar-fixed-bottom {
            position: fixed;
            right: 0;
            left: 0;
            z-index: 1030;
        }

        @media (min-width: 541px) {
            .navbar-fixed-top,
            .navbar-fixed-bottom {
                border-radius: 0;
            }
        }

        .navbar-fixed-top {
            top: 0;
            border-width: 0 0 1px;
        }

        .navbar-fixed-bottom {
            bottom: 0;
            margin-bottom: 0;
            border-width: 1px 0 0;
        }

        .navbar-brand {
            float: left;
            padding: 6px 0px;
            font-size: 17px;
            line-height: 18px;
            height: 30px;
        }

        .navbar-brand:hover,
        .navbar-brand:focus {
            text-decoration: none;
        }

        .navbar-brand > img {
            display: block;
        }

        @media (min-width: 541px) {
            .navbar > .container .navbar-brand,
            .navbar > .container-fluid .navbar-brand {
                margin-left: 0px;
            }
        }

        .navbar-toggle {
            position: relative;
            float: right;
            margin-right: 0px;
            padding: 9px 10px;
            margin-top: -2px;
            margin-bottom: -2px;
            background-color: transparent;
            background-image: none;
            border: 1px solid transparent;
            border-radius: 2px;
        }

        .navbar-toggle:focus {
            outline: 0;
        }

        .navbar-toggle .icon-bar {
            display: block;
            width: 22px;
            height: 2px;
            border-radius: 1px;
        }

        .navbar-toggle .icon-bar + .icon-bar {
            margin-top: 4px;
        }

        @media (min-width: 541px) {
            .navbar-toggle {
                display: none;
            }
        }

        .navbar-nav {
            margin: 3px 0px;
        }

        .navbar-nav > li > a {
            padding-top: 10px;
            padding-bottom: 10px;
            line-height: 18px;
        }

        @media (max-width: 540px) {
            .navbar-nav .open .dropdown-menu {
                position: static;
                float: none;
                width: auto;
                margin-top: 0;
                background-color: transparent;
                border: 0;
                box-shadow: none;
            }

            .navbar-nav .open .dropdown-menu > li > a,
            .navbar-nav .open .dropdown-menu .dropdown-header {
                padding: 5px 15px 5px 25px;
            }

            .navbar-nav .open .dropdown-menu > li > a {
                line-height: 18px;
            }

            .navbar-nav .open .dropdown-menu > li > a:hover,
            .navbar-nav .open .dropdown-menu > li > a:focus {
                background-image: none;
            }
        }

        @media (min-width: 541px) {
            .navbar-nav {
                float: left;
                margin: 0;
            }

            .navbar-nav > li {
                float: left;
            }

            .navbar-nav > li > a {
                padding-top: 6px;
                padding-bottom: 6px;
            }
        }

        .navbar-form {
            margin-left: 0px;
            margin-right: 0px;
            padding: 10px 0px;
            border-top: 1px solid transparent;
            border-bottom: 1px solid transparent;
            -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
            margin-top: -1px;
            margin-bottom: -1px;
        }

        @media (min-width: 768px) {
            .navbar-form .form-group {
                display: inline-block;
                margin-bottom: 0;
                vertical-align: middle;
            }

            .navbar-form .form-control {
                display: inline-block;
                width: auto;
                vertical-align: middle;
            }

            .navbar-form .form-control-static {
                display: inline-block;
            }

            .navbar-form .input-group {
                display: inline-table;
                vertical-align: middle;
            }

            .navbar-form .input-group .input-group-addon,
            .navbar-form .input-group .input-group-btn,
            .navbar-form .input-group .form-control {
                width: auto;
            }

            .navbar-form .input-group > .form-control {
                width: 100%;
            }

            .navbar-form .control-label {
                margin-bottom: 0;
                vertical-align: middle;
            }

            .navbar-form .radio,
            .navbar-form .checkbox {
                display: inline-block;
                margin-top: 0;
                margin-bottom: 0;
                vertical-align: middle;
            }

            .navbar-form .radio label,
            .navbar-form .checkbox label {
                padding-left: 0;
            }

            .navbar-form .radio input[type="radio"],
            .navbar-form .checkbox input[type="checkbox"] {
                position: relative;
                margin-left: 0;
            }

            .navbar-form .has-feedback .form-control-feedback {
                top: 0;
            }
        }

        @media (max-width: 540px) {
            .navbar-form .form-group {
                margin-bottom: 5px;
            }

            .navbar-form .form-group:last-child {
                margin-bottom: 0;
            }
        }

        @media (min-width: 541px) {
            .navbar-form {
                width: auto;
                border: 0;
                margin-left: 0;
                margin-right: 0;
                padding-top: 0;
                padding-bottom: 0;
                -webkit-box-shadow: none;
                box-shadow: none;
            }
        }

        .navbar-nav > li > .dropdown-menu {
            margin-top: 0;
            border-top-right-radius: 0;
            border-top-left-radius: 0;
        }

        .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
            margin-bottom: 0;
            border-top-right-radius: 2px;
            border-top-left-radius: 2px;
            border-bottom-right-radius: 0;
            border-bottom-left-radius: 0;
        }

        .navbar-btn {
            margin-top: -1px;
            margin-bottom: -1px;
        }

        .navbar-btn.btn-sm {
            margin-top: 0px;
            margin-bottom: 0px;
        }

        .navbar-btn.btn-xs {
            margin-top: 4px;
            margin-bottom: 4px;
        }

        .navbar-text {
            margin-top: 6px;
            margin-bottom: 6px;
        }

        @media (min-width: 541px) {
            .navbar-text {
                float: left;
                margin-left: 0px;
                margin-right: 0px;
            }
        }

        @media (min-width: 541px) {
            .navbar-left {
                float: left !important;
                float: left;
            }

            .navbar-right {
                float: right !important;
                float: right;
                margin-right: 0px;
            }

            .navbar-right ~ .navbar-right {
                margin-right: 0;
            }
        }

        .navbar-default {
            background-color: #f8f8f8;
            border-color: #e7e7e7;
        }

        .navbar-default .navbar-brand {
            color: #777;
        }

        .navbar-default .navbar-brand:hover,
        .navbar-default .navbar-brand:focus {
            color: #5e5e5e;
            background-color: transparent;
        }

        .navbar-default .navbar-text {
            color: #777;
        }

        .navbar-default .navbar-nav > li > a {
            color: #777;
        }

        .navbar-default .navbar-nav > li > a:hover,
        .navbar-default .navbar-nav > li > a:focus {
            color: #333;
            background-color: transparent;
        }

        .navbar-default .navbar-nav > .active > a,
        .navbar-default .navbar-nav > .active > a:hover,
        .navbar-default .navbar-nav > .active > a:focus {
            color: #555;
            background-color: #e7e7e7;
        }

        .navbar-default .navbar-nav > .disabled > a,
        .navbar-default .navbar-nav > .disabled > a:hover,
        .navbar-default .navbar-nav > .disabled > a:focus {
            color: #ccc;
            background-color: transparent;
        }

        .navbar-default .navbar-toggle {
            border-color: #ddd;
        }

        .navbar-default .navbar-toggle:hover,
        .navbar-default .navbar-toggle:focus {
            background-color: #ddd;
        }

        .navbar-default .navbar-toggle .icon-bar {
            background-color: #888;
        }

        .navbar-default .navbar-collapse,
        .navbar-default .navbar-form {
            border-color: #e7e7e7;
        }

        .navbar-default .navbar-nav > .open > a,
        .navbar-default .navbar-nav > .open > a:hover,
        .navbar-default .navbar-nav > .open > a:focus {
            background-color: #e7e7e7;
            color: #555;
        }

        @media (max-width: 540px) {
            .navbar-default .navbar-nav .open .dropdown-menu > li > a {
                color: #777;
            }

            .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
            .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
                color: #333;
                background-color: transparent;
            }

            .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
            .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
            .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
                color: #555;
                background-color: #e7e7e7;
            }

            .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
            .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
            .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
                color: #ccc;
                background-color: transparent;
            }
        }

        .navbar-default .navbar-link {
            color: #777;
        }

        .navbar-default .navbar-link:hover {
            color: #333;
        }

        .navbar-default .btn-link {
            color: #777;
        }

        .navbar-default .btn-link:hover,
        .navbar-default .btn-link:focus {
            color: #333;
        }

        .navbar-default .btn-link[disabled]:hover,
        fieldset[disabled] .navbar-default .btn-link:hover,
        .navbar-default .btn-link[disabled]:focus,
        fieldset[disabled] .navbar-default .btn-link:focus {
            color: #ccc;
        }

        .navbar-inverse {
            background-color: #222;
            border-color: #080808;
        }

        .navbar-inverse .navbar-brand {
            color: #9d9d9d;
        }

        .navbar-inverse .navbar-brand:hover,
        .navbar-inverse .navbar-brand:focus {
            color: #fff;
            background-color: transparent;
        }

        .navbar-inverse .navbar-text {
            color: #9d9d9d;
        }

        .navbar-inverse .navbar-nav > li > a {
            color: #9d9d9d;
        }

        .navbar-inverse .navbar-nav > li > a:hover,
        .navbar-inverse .navbar-nav > li > a:focus {
            color: #fff;
            background-color: transparent;
        }

        .navbar-inverse .navbar-nav > .active > a,
        .navbar-inverse .navbar-nav > .active > a:hover,
        .navbar-inverse .navbar-nav > .active > a:focus {
            color: #fff;
            background-color: #080808;
        }

        .navbar-inverse .navbar-nav > .disabled > a,
        .navbar-inverse .navbar-nav > .disabled > a:hover,
        .navbar-inverse .navbar-nav > .disabled > a:focus {
            color: #444;
            background-color: transparent;
        }

        .navbar-inverse .navbar-toggle {
            border-color: #333;
        }

        .navbar-inverse .navbar-toggle:hover,
        .navbar-inverse .navbar-toggle:focus {
            background-color: #333;
        }

        .navbar-inverse .navbar-toggle .icon-bar {
            background-color: #fff;
        }

        .navbar-inverse .navbar-collapse,
        .navbar-inverse .navbar-form {
            border-color: #101010;
        }

        .navbar-inverse .navbar-nav > .open > a,
        .navbar-inverse .navbar-nav > .open > a:hover,
        .navbar-inverse .navbar-nav > .open > a:focus {
            background-color: #080808;
            color: #fff;
        }

        @media (max-width: 540px) {
            .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
                border-color: #080808;
            }

            .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
                background-color: #080808;
            }

            .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
                color: #9d9d9d;
            }

            .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
            .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
                color: #fff;
                background-color: transparent;
            }

            .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
            .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
            .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
                color: #fff;
                background-color: #080808;
            }

            .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
            .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
            .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
                color: #444;
                background-color: transparent;
            }
        }

        .navbar-inverse .navbar-link {
            color: #9d9d9d;
        }

        .navbar-inverse .navbar-link:hover {
            color: #fff;
        }

        .navbar-inverse .btn-link {
            color: #9d9d9d;
        }

        .navbar-inverse .btn-link:hover,
        .navbar-inverse .btn-link:focus {
            color: #fff;
        }

        .navbar-inverse .btn-link[disabled]:hover,
        fieldset[disabled] .navbar-inverse .btn-link:hover,
        .navbar-inverse .btn-link[disabled]:focus,
        fieldset[disabled] .navbar-inverse .btn-link:focus {
            color: #444;
        }

        .breadcrumb {
            padding: 8px 15px;
            margin-bottom: 18px;
            list-style: none;
            background-color: #f5f5f5;
            border-radius: 2px;
        }

        .breadcrumb > li {
            display: inline-block;
        }

        .breadcrumb > li + li:before {
            content: "/\00a0";
            padding: 0 5px;
            color: #5e5e5e;
        }

        .breadcrumb > .active {
            color: #777777;
        }

        .pagination {
            display: inline-block;
            padding-left: 0;
            margin: 18px 0;
            border-radius: 2px;
        }

        .pagination > li {
            display: inline;
        }

        .pagination > li > a,
        .pagination > li > span {
            position: relative;
            float: left;
            padding: 6px 12px;
            line-height: 1.42857143;
            text-decoration: none;
            color: #337ab7;
            background-color: #fff;
            border: 1px solid #ddd;
            margin-left: -1px;
        }

        .pagination > li:first-child > a,
        .pagination > li:first-child > span {
            margin-left: 0;
            border-bottom-left-radius: 2px;
            border-top-left-radius: 2px;
        }

        .pagination > li:last-child > a,
        .pagination > li:last-child > span {
            border-bottom-right-radius: 2px;
            border-top-right-radius: 2px;
        }

        .pagination > li > a:hover,
        .pagination > li > span:hover,
        .pagination > li > a:focus,
        .pagination > li > span:focus {
            z-index: 2;
            color: #23527c;
            background-color: #eeeeee;
            border-color: #ddd;
        }

        .pagination > .active > a,
        .pagination > .active > span,
        .pagination > .active > a:hover,
        .pagination > .active > span:hover,
        .pagination > .active > a:focus,
        .pagination > .active > span:focus {
            z-index: 3;
            color: #fff;
            background-color: #337ab7;
            border-color: #337ab7;
            cursor: default;
        }

        .pagination > .disabled > span,
        .pagination > .disabled > span:hover,
        .pagination > .disabled > span:focus,
        .pagination > .disabled > a,
        .pagination > .disabled > a:hover,
        .pagination > .disabled > a:focus {
            color: #777777;
            background-color: #fff;
            border-color: #ddd;
            cursor: not-allowed;
        }

        .pagination-lg > li > a,
        .pagination-lg > li > span {
            padding: 10px 16px;
            font-size: 17px;
            line-height: 1.3333333;
        }

        .pagination-lg > li:first-child > a,
        .pagination-lg > li:first-child > span {
            border-bottom-left-radius: 3px;
            border-top-left-radius: 3px;
        }

        .pagination-lg > li:last-child > a,
        .pagination-lg > li:last-child > span {
            border-bottom-right-radius: 3px;
            border-top-right-radius: 3px;
        }

        .pagination-sm > li > a,
        .pagination-sm > li > span {
            padding: 5px 10px;
            font-size: 12px;
            line-height: 1.5;
        }

        .pagination-sm > li:first-child > a,
        .pagination-sm > li:first-child > span {
            border-bottom-left-radius: 1px;
            border-top-left-radius: 1px;
        }

        .pagination-sm > li:last-child > a,
        .pagination-sm > li:last-child > span {
            border-bottom-right-radius: 1px;
            border-top-right-radius: 1px;
        }

        .pager {
            padding-left: 0;
            margin: 18px 0;
            list-style: none;
            text-align: center;
        }

        .pager li {
            display: inline;
        }

        .pager li > a,
        .pager li > span {
            display: inline-block;
            padding: 5px 14px;
            background-color: #fff;
            border: 1px solid #ddd;
            border-radius: 15px;
        }

        .pager li > a:hover,
        .pager li > a:focus {
            text-decoration: none;
            background-color: #eeeeee;
        }

        .pager .next > a,
        .pager .next > span {
            float: right;
        }

        .pager .previous > a,
        .pager .previous > span {
            float: left;
        }

        .pager .disabled > a,
        .pager .disabled > a:hover,
        .pager .disabled > a:focus,
        .pager .disabled > span {
            color: #777777;
            background-color: #fff;
            cursor: not-allowed;
        }

        .label {
            display: inline;
            padding: .2em .6em .3em;
            font-size: 75%;
            font-weight: bold;
            line-height: 1;
            color: #fff;
            text-align: center;
            white-space: nowrap;
            vertical-align: baseline;
            border-radius: .25em;
        }

        a.label:hover,
        a.label:focus {
            color: #fff;
            text-decoration: none;
            cursor: pointer;
        }

        .label:empty {
            display: none;
        }

        .btn .label {
            position: relative;
            top: -1px;
        }

        .label-default {
            background-color: #777777;
        }

        .label-default[href]:hover,
        .label-default[href]:focus {
            background-color: #5e5e5e;
        }

        .label-primary {
            background-color: #337ab7;
        }

        .label-primary[href]:hover,
        .label-primary[href]:focus {
            background-color: #286090;
        }

        .label-success {
            background-color: #5cb85c;
        }

        .label-success[href]:hover,
        .label-success[href]:focus {
            background-color: #449d44;
        }

        .label-info {
            background-color: #5bc0de;
        }

        .label-info[href]:hover,
        .label-info[href]:focus {
            background-color: #31b0d5;
        }

        .label-warning {
            background-color: #f0ad4e;
        }

        .label-warning[href]:hover,
        .label-warning[href]:focus {
            background-color: #ec971f;
        }

        .label-danger {
            background-color: #d9534f;
        }

        .label-danger[href]:hover,
        .label-danger[href]:focus {
            background-color: #c9302c;
        }

        .badge {
            display: inline-block;
            min-width: 10px;
            padding: 3px 7px;
            font-size: 12px;
            font-weight: bold;
            color: #fff;
            line-height: 1;
            vertical-align: middle;
            white-space: nowrap;
            text-align: center;
            background-color: #777777;
            border-radius: 10px;
        }

        .badge:empty {
            display: none;
        }

        .btn .badge {
            position: relative;
            top: -1px;
        }

        .btn-xs .badge,
        .btn-group-xs > .btn .badge {
            top: 0;
            padding: 1px 5px;
        }

        a.badge:hover,
        a.badge:focus {
            color: #fff;
            text-decoration: none;
            cursor: pointer;
        }

        .list-group-item.active > .badge,
        .nav-pills > .active > a > .badge {
            color: #337ab7;
            background-color: #fff;
        }

        .list-group-item > .badge {
            float: right;
        }

        .list-group-item > .badge + .badge {
            margin-right: 5px;
        }

        .nav-pills > li > a > .badge {
            margin-left: 3px;
        }

        .jumbotron {
            padding-top: 30px;
            padding-bottom: 30px;
            margin-bottom: 30px;
            color: inherit;
            background-color: #eeeeee;
        }

        .jumbotron h1,
        .jumbotron .h1 {
            color: inherit;
        }

        .jumbotron p {
            margin-bottom: 15px;
            font-size: 20px;
            font-weight: 200;
        }

        .jumbotron > hr {
            border-top-color: #d5d5d5;
        }

        .container .jumbotron,
        .container-fluid .jumbotron {
            border-radius: 3px;
            padding-left: 0px;
            padding-right: 0px;
        }

        .jumbotron .container {
            max-width: 100%;
        }

        @media screen and (min-width: 768px) {
            .jumbotron {
                padding-top: 48px;
                padding-bottom: 48px;
            }

            .container .jumbotron,
            .container-fluid .jumbotron {
                padding-left: 60px;
                padding-right: 60px;
            }

            .jumbotron h1,
            .jumbotron .h1 {
                font-size: 59px;
            }
        }

        .thumbnail {
            display: block;
            padding: 4px;
            margin-bottom: 18px;
            line-height: 1.42857143;
            background-color: #fff;
            border: 1px solid #ddd;
            border-radius: 2px;
            -webkit-transition: border 0.2s ease-in-out;
            -o-transition: border 0.2s ease-in-out;
            transition: border 0.2s ease-in-out;
        }

        .thumbnail > img,
        .thumbnail a > img {
            margin-left: auto;
            margin-right: auto;
        }

        a.thumbnail:hover,
        a.thumbnail:focus,
        a.thumbnail.active {
            border-color: #337ab7;
        }

        .thumbnail .caption {
            padding: 9px;
            color: #000;
        }

        .alert {
            padding: 15px;
            margin-bottom: 18px;
            border: 1px solid transparent;
            border-radius: 2px;
        }

        .alert h4 {
            margin-top: 0;
            color: inherit;
        }

        .alert .alert-link {
            font-weight: bold;
        }

        .alert > p,
        .alert > ul {
            margin-bottom: 0;
        }

        .alert > p + p {
            margin-top: 5px;
        }

        .alert-dismissable,
        .alert-dismissible {
            padding-right: 35px;
        }

        .alert-dismissable .close,
        .alert-dismissible .close {
            position: relative;
            top: -2px;
            right: -21px;
            color: inherit;
        }

        .alert-success {
            background-color: #dff0d8;
            border-color: #d6e9c6;
            color: #3c763d;
        }

        .alert-success hr {
            border-top-color: #c9e2b3;
        }

        .alert-success .alert-link {
            color: #2b542c;
        }

        .alert-info {
            background-color: #d9edf7;
            border-color: #bce8f1;
            color: #31708f;
        }

        .alert-info hr {
            border-top-color: #a6e1ec;
        }

        .alert-info .alert-link {
            color: #245269;
        }

        .alert-warning {
            background-color: #fcf8e3;
            border-color: #faebcc;
            color: #8a6d3b;
        }

        .alert-warning hr {
            border-top-color: #f7e1b5;
        }

        .alert-warning .alert-link {
            color: #66512c;
        }

        .alert-danger {
            background-color: #f2dede;
            border-color: #ebccd1;
            color: #a94442;
        }

        .alert-danger hr {
            border-top-color: #e4b9c0;
        }

        .alert-danger .alert-link {
            color: #843534;
        }

        @-webkit-keyframes progress-bar-stripes {
            from {
                background-position: 40px 0;
            }
            to {
                background-position: 0 0;
            }
        }

        @keyframes progress-bar-stripes {
            from {
                background-position: 40px 0;
            }
            to {
                background-position: 0 0;
            }
        }

        .progress {
            overflow: hidden;
            height: 18px;
            margin-bottom: 18px;
            background-color: #f5f5f5;
            border-radius: 2px;
            -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
            box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
        }

        .progress-bar {
            float: left;
            width: 0%;
            height: 100%;
            font-size: 12px;
            line-height: 18px;
            color: #fff;
            text-align: center;
            background-color: #337ab7;
            -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
            box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
            -webkit-transition: width 0.6s ease;
            -o-transition: width 0.6s ease;
            transition: width 0.6s ease;
        }

        .progress-striped .progress-bar,
        .progress-bar-striped {
            background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
            background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
            background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
            background-size: 40px 40px;
        }

        .progress.active .progress-bar,
        .progress-bar.active {
            -webkit-animation: progress-bar-stripes 2s linear infinite;
            -o-animation: progress-bar-stripes 2s linear infinite;
            animation: progress-bar-stripes 2s linear infinite;
        }

        .progress-bar-success {
            background-color: #5cb85c;
        }

        .progress-striped .progress-bar-success {
            background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
            background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
            background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
        }

        .progress-bar-info {
            background-color: #5bc0de;
        }

        .progress-striped .progress-bar-info {
            background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
            background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
            background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
        }

        .progress-bar-warning {
            background-color: #f0ad4e;
        }

        .progress-striped .progress-bar-warning {
            background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
            background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
            background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
        }

        .progress-bar-danger {
            background-color: #d9534f;
        }

        .progress-striped .progress-bar-danger {
            background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
            background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
            background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
        }

        .media {
            margin-top: 15px;
        }

        .media:first-child {
            margin-top: 0;
        }

        .media,
        .media-body {
            zoom: 1;
            overflow: hidden;
        }

        .media-body {
            width: 10000px;
        }

        .media-object {
            display: block;
        }

        .media-object.img-thumbnail {
            max-width: none;
        }

        .media-right,
        .media > .pull-right {
            padding-left: 10px;
        }

        .media-left,
        .media > .pull-left {
            padding-right: 10px;
        }

        .media-left,
        .media-right,
        .media-body {
            display: table-cell;
            vertical-align: top;
        }

        .media-middle {
            vertical-align: middle;
        }

        .media-bottom {
            vertical-align: bottom;
        }

        .media-heading {
            margin-top: 0;
            margin-bottom: 5px;
        }

        .media-list {
            padding-left: 0;
            list-style: none;
        }

        .list-group {
            margin-bottom: 20px;
            padding-left: 0;
        }

        .list-group-item {
            position: relative;
            display: block;
            padding: 10px 15px;
            margin-bottom: -1px;
            background-color: #fff;
            border: 1px solid #ddd;
        }

        .list-group-item:first-child {
            border-top-right-radius: 2px;
            border-top-left-radius: 2px;
        }

        .list-group-item:last-child {
            margin-bottom: 0;
            border-bottom-right-radius: 2px;
            border-bottom-left-radius: 2px;
        }

        a.list-group-item,
        button.list-group-item {
            color: #555;
        }

        a.list-group-item .list-group-item-heading,
        button.list-group-item .list-group-item-heading {
            color: #333;
        }

        a.list-group-item:hover,
        button.list-group-item:hover,
        a.list-group-item:focus,
        button.list-group-item:focus {
            text-decoration: none;
            color: #555;
            background-color: #f5f5f5;
        }

        button.list-group-item {
            width: 100%;
            text-align: left;
        }

        .list-group-item.disabled,
        .list-group-item.disabled:hover,
        .list-group-item.disabled:focus {
            background-color: #eeeeee;
            color: #777777;
            cursor: not-allowed;
        }

        .list-group-item.disabled .list-group-item-heading,
        .list-group-item.disabled:hover .list-group-item-heading,
        .list-group-item.disabled:focus .list-group-item-heading {
            color: inherit;
        }

        .list-group-item.disabled .list-group-item-text,
        .list-group-item.disabled:hover .list-group-item-text,
        .list-group-item.disabled:focus .list-group-item-text {
            color: #777777;
        }

        .list-group-item.active,
        .list-group-item.active:hover,
        .list-group-item.active:focus {
            z-index: 2;
            color: #fff;
            background-color: #337ab7;
            border-color: #337ab7;
        }

        .list-group-item.active .list-group-item-heading,
        .list-group-item.active:hover .list-group-item-heading,
        .list-group-item.active:focus .list-group-item-heading,
        .list-group-item.active .list-group-item-heading > small,
        .list-group-item.active:hover .list-group-item-heading > small,
        .list-group-item.active:focus .list-group-item-heading > small,
        .list-group-item.active .list-group-item-heading > .small,
        .list-group-item.active:hover .list-group-item-heading > .small,
        .list-group-item.active:focus .list-group-item-heading > .small {
            color: inherit;
        }

        .list-group-item.active .list-group-item-text,
        .list-group-item.active:hover .list-group-item-text,
        .list-group-item.active:focus .list-group-item-text {
            color: #c7ddef;
        }

        .list-group-item-success {
            color: #3c763d;
            background-color: #dff0d8;
        }

        a.list-group-item-success,
        button.list-group-item-success {
            color: #3c763d;
        }

        a.list-group-item-success .list-group-item-heading,
        button.list-group-item-success .list-group-item-heading {
            color: inherit;
        }

        a.list-group-item-success:hover,
        button.list-group-item-success:hover,
        a.list-group-item-success:focus,
        button.list-group-item-success:focus {
            color: #3c763d;
            background-color: #d0e9c6;
        }

        a.list-group-item-success.active,
        button.list-group-item-success.active,
        a.list-group-item-success.active:hover,
        button.list-group-item-success.active:hover,
        a.list-group-item-success.active:focus,
        button.list-group-item-success.active:focus {
            color: #fff;
            background-color: #3c763d;
            border-color: #3c763d;
        }

        .list-group-item-info {
            color: #31708f;
            background-color: #d9edf7;
        }

        a.list-group-item-info,
        button.list-group-item-info {
            color: #31708f;
        }

        a.list-group-item-info .list-group-item-heading,
        button.list-group-item-info .list-group-item-heading {
            color: inherit;
        }

        a.list-group-item-info:hover,
        button.list-group-item-info:hover,
        a.list-group-item-info:focus,
        button.list-group-item-info:focus {
            color: #31708f;
            background-color: #c4e3f3;
        }

        a.list-group-item-info.active,
        button.list-group-item-info.active,
        a.list-group-item-info.active:hover,
        button.list-group-item-info.active:hover,
        a.list-group-item-info.active:focus,
        button.list-group-item-info.active:focus {
            color: #fff;
            background-color: #31708f;
            border-color: #31708f;
        }

        .list-group-item-warning {
            color: #8a6d3b;
            background-color: #fcf8e3;
        }

        a.list-group-item-warning,
        button.list-group-item-warning {
            color: #8a6d3b;
        }

        a.list-group-item-warning .list-group-item-heading,
        button.list-group-item-warning .list-group-item-heading {
            color: inherit;
        }

        a.list-group-item-warning:hover,
        button.list-group-item-warning:hover,
        a.list-group-item-warning:focus,
        button.list-group-item-warning:focus {
            color: #8a6d3b;
            background-color: #faf2cc;
        }

        a.list-group-item-warning.active,
        button.list-group-item-warning.active,
        a.list-group-item-warning.active:hover,
        button.list-group-item-warning.active:hover,
        a.list-group-item-warning.active:focus,
        button.list-group-item-warning.active:focus {
            color: #fff;
            background-color: #8a6d3b;
            border-color: #8a6d3b;
        }

        .list-group-item-danger {
            color: #a94442;
            background-color: #f2dede;
        }

        a.list-group-item-danger,
        button.list-group-item-danger {
            color: #a94442;
        }

        a.list-group-item-danger .list-group-item-heading,
        button.list-group-item-danger .list-group-item-heading {
            color: inherit;
        }

        a.list-group-item-danger:hover,
        button.list-group-item-danger:hover,
        a.list-group-item-danger:focus,
        button.list-group-item-danger:focus {
            color: #a94442;
            background-color: #ebcccc;
        }

        a.list-group-item-danger.active,
        button.list-group-item-danger.active,
        a.list-group-item-danger.active:hover,
        button.list-group-item-danger.active:hover,
        a.list-group-item-danger.active:focus,
        button.list-group-item-danger.active:focus {
            color: #fff;
            background-color: #a94442;
            border-color: #a94442;
        }

        .list-group-item-heading {
            margin-top: 0;
            margin-bottom: 5px;
        }

        .list-group-item-text {
            margin-bottom: 0;
            line-height: 1.3;
        }

        .panel {
            margin-bottom: 18px;
            background-color: #fff;
            border: 1px solid transparent;
            border-radius: 2px;
            -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
            box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
        }

        .panel-body {
            padding: 15px;
        }

        .panel-heading {
            padding: 10px 15px;
            border-bottom: 1px solid transparent;
            border-top-right-radius: 1px;
            border-top-left-radius: 1px;
        }

        .panel-heading > .dropdown .dropdown-toggle {
            color: inherit;
        }

        .panel-title {
            margin-top: 0;
            margin-bottom: 0;
            font-size: 15px;
            color: inherit;
        }

        .panel-title > a,
        .panel-title > small,
        .panel-title > .small,
        .panel-title > small > a,
        .panel-title > .small > a {
            color: inherit;
        }

        .panel-footer {
            padding: 10px 15px;
            background-color: #f5f5f5;
            border-top: 1px solid #ddd;
            border-bottom-right-radius: 1px;
            border-bottom-left-radius: 1px;
        }

        .panel > .list-group,
        .panel > .panel-collapse > .list-group {
            margin-bottom: 0;
        }

        .panel > .list-group .list-group-item,
        .panel > .panel-collapse > .list-group .list-group-item {
            border-width: 1px 0;
            border-radius: 0;
        }

        .panel > .list-group:first-child .list-group-item:first-child,
        .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
            border-top: 0;
            border-top-right-radius: 1px;
            border-top-left-radius: 1px;
        }

        .panel > .list-group:last-child .list-group-item:last-child,
        .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
            border-bottom: 0;
            border-bottom-right-radius: 1px;
            border-bottom-left-radius: 1px;
        }

        .panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
            border-top-right-radius: 0;
            border-top-left-radius: 0;
        }

        .panel-heading + .list-group .list-group-item:first-child {
            border-top-width: 0;
        }

        .list-group + .panel-footer {
            border-top-width: 0;
        }

        .panel > .table,
        .panel > .table-responsive > .table,
        .panel > .panel-collapse > .table {
            margin-bottom: 0;
        }

        .panel > .table caption,
        .panel > .table-responsive > .table caption,
        .panel > .panel-collapse > .table caption {
            padding-left: 15px;
            padding-right: 15px;
        }

        .panel > .table:first-child,
        .panel > .table-responsive:first-child > .table:first-child {
            border-top-right-radius: 1px;
            border-top-left-radius: 1px;
        }

        .panel > .table:first-child > thead:first-child > tr:first-child,
        .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
        .panel > .table:first-child > tbody:first-child > tr:first-child,
        .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
            border-top-left-radius: 1px;
            border-top-right-radius: 1px;
        }

        .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
        .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
        .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
        .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
        .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
        .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
        .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
        .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
            border-top-left-radius: 1px;
        }

        .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
        .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
        .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
        .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
        .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
        .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
        .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
        .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
            border-top-right-radius: 1px;
        }

        .panel > .table:last-child,
        .panel > .table-responsive:last-child > .table:last-child {
            border-bottom-right-radius: 1px;
            border-bottom-left-radius: 1px;
        }

        .panel > .table:last-child > tbody:last-child > tr:last-child,
        .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
        .panel > .table:last-child > tfoot:last-child > tr:last-child,
        .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
            border-bottom-left-radius: 1px;
            border-bottom-right-radius: 1px;
        }

        .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
        .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
        .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
        .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
        .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
        .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
        .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
        .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
            border-bottom-left-radius: 1px;
        }

        .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
        .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
        .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
        .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
        .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
        .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
        .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
        .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
            border-bottom-right-radius: 1px;
        }

        .panel > .panel-body + .table,
        .panel > .panel-body + .table-responsive,
        .panel > .table + .panel-body,
        .panel > .table-responsive + .panel-body {
            border-top: 1px solid #ddd;
        }

        .panel > .table > tbody:first-child > tr:first-child th,
        .panel > .table > tbody:first-child > tr:first-child td {
            border-top: 0;
        }

        .panel > .table-bordered,
        .panel > .table-responsive > .table-bordered {
            border: 0;
        }

        .panel > .table-bordered > thead > tr > th:first-child,
        .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
        .panel > .table-bordered > tbody > tr > th:first-child,
        .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
        .panel > .table-bordered > tfoot > tr > th:first-child,
        .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
        .panel > .table-bordered > thead > tr > td:first-child,
        .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
        .panel > .table-bordered > tbody > tr > td:first-child,
        .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
        .panel > .table-bordered > tfoot > tr > td:first-child,
        .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
            border-left: 0;
        }

        .panel > .table-bordered > thead > tr > th:last-child,
        .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
        .panel > .table-bordered > tbody > tr > th:last-child,
        .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
        .panel > .table-bordered > tfoot > tr > th:last-child,
        .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
        .panel > .table-bordered > thead > tr > td:last-child,
        .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
        .panel > .table-bordered > tbody > tr > td:last-child,
        .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
        .panel > .table-bordered > tfoot > tr > td:last-child,
        .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
            border-right: 0;
        }

        .panel > .table-bordered > thead > tr:first-child > td,
        .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
        .panel > .table-bordered > tbody > tr:first-child > td,
        .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
        .panel > .table-bordered > thead > tr:first-child > th,
        .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
        .panel > .table-bordered > tbody > tr:first-child > th,
        .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
            border-bottom: 0;
        }

        .panel > .table-bordered > tbody > tr:last-child > td,
        .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
        .panel > .table-bordered > tfoot > tr:last-child > td,
        .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
        .panel > .table-bordered > tbody > tr:last-child > th,
        .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
        .panel > .table-bordered > tfoot > tr:last-child > th,
        .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
            border-bottom: 0;
        }

        .panel > .table-responsive {
            border: 0;
            margin-bottom: 0;
        }

        .panel-group {
            margin-bottom: 18px;
        }

        .panel-group .panel {
            margin-bottom: 0;
            border-radius: 2px;
        }

        .panel-group .panel + .panel {
            margin-top: 5px;
        }

        .panel-group .panel-heading {
            border-bottom: 0;
        }

        .panel-group .panel-heading + .panel-collapse > .panel-body,
        .panel-group .panel-heading + .panel-collapse > .list-group {
            border-top: 1px solid #ddd;
        }

        .panel-group .panel-footer {
            border-top: 0;
        }

        .panel-group .panel-footer + .panel-collapse .panel-body {
            border-bottom: 1px solid #ddd;
        }

        .panel-default {
            border-color: #ddd;
        }

        .panel-default > .panel-heading {
            color: #333333;
            background-color: #f5f5f5;
            border-color: #ddd;
        }

        .panel-default > .panel-heading + .panel-collapse > .panel-body {
            border-top-color: #ddd;
        }

        .panel-default > .panel-heading .badge {
            color: #f5f5f5;
            background-color: #333333;
        }

        .panel-default > .panel-footer + .panel-collapse > .panel-body {
            border-bottom-color: #ddd;
        }

        .panel-primary {
            border-color: #337ab7;
        }

        .panel-primary > .panel-heading {
            color: #fff;
            background-color: #337ab7;
            border-color: #337ab7;
        }

        .panel-primary > .panel-heading + .panel-collapse > .panel-body {
            border-top-color: #337ab7;
        }

        .panel-primary > .panel-heading .badge {
            color: #337ab7;
            background-color: #fff;
        }

        .panel-primary > .panel-footer + .panel-collapse > .panel-body {
            border-bottom-color: #337ab7;
        }

        .panel-success {
            border-color: #d6e9c6;
        }

        .panel-success > .panel-heading {
            color: #3c763d;
            background-color: #dff0d8;
            border-color: #d6e9c6;
        }

        .panel-success > .panel-heading + .panel-collapse > .panel-body {
            border-top-color: #d6e9c6;
        }

        .panel-success > .panel-heading .badge {
            color: #dff0d8;
            background-color: #3c763d;
        }

        .panel-success > .panel-footer + .panel-collapse > .panel-body {
            border-bottom-color: #d6e9c6;
        }

        .panel-info {
            border-color: #bce8f1;
        }

        .panel-info > .panel-heading {
            color: #31708f;
            background-color: #d9edf7;
            border-color: #bce8f1;
        }

        .panel-info > .panel-heading + .panel-collapse > .panel-body {
            border-top-color: #bce8f1;
        }

        .panel-info > .panel-heading .badge {
            color: #d9edf7;
            background-color: #31708f;
        }

        .panel-info > .panel-footer + .panel-collapse > .panel-body {
            border-bottom-color: #bce8f1;
        }

        .panel-warning {
            border-color: #faebcc;
        }

        .panel-warning > .panel-heading {
            color: #8a6d3b;
            background-color: #fcf8e3;
            border-color: #faebcc;
        }

        .panel-warning > .panel-heading + .panel-collapse > .panel-body {
            border-top-color: #faebcc;
        }

        .panel-warning > .panel-heading .badge {
            color: #fcf8e3;
            background-color: #8a6d3b;
        }

        .panel-warning > .panel-footer + .panel-collapse > .panel-body {
            border-bottom-color: #faebcc;
        }

        .panel-danger {
            border-color: #ebccd1;
        }

        .panel-danger > .panel-heading {
            color: #a94442;
            background-color: #f2dede;
            border-color: #ebccd1;
        }

        .panel-danger > .panel-heading + .panel-collapse > .panel-body {
            border-top-color: #ebccd1;
        }

        .panel-danger > .panel-heading .badge {
            color: #f2dede;
            background-color: #a94442;
        }

        .panel-danger > .panel-footer + .panel-collapse > .panel-body {
            border-bottom-color: #ebccd1;
        }

        .embed-responsive {
            position: relative;
            display: block;
            height: 0;
            padding: 0;
            overflow: hidden;
        }

        .embed-responsive .embed-responsive-item,
        .embed-responsive iframe,
        .embed-responsive embed,
        .embed-responsive object,
        .embed-responsive video {
            position: absolute;
            top: 0;
            left: 0;
            bottom: 0;
            height: 100%;
            width: 100%;
            border: 0;
        }

        .embed-responsive-16by9 {
            padding-bottom: 56.25%;
        }

        .embed-responsive-4by3 {
            padding-bottom: 75%;
        }

        .well {
            min-height: 20px;
            padding: 19px;
            margin-bottom: 20px;
            background-color: #f5f5f5;
            border: 1px solid #e3e3e3;
            border-radius: 2px;
            -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
            box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
        }

        .well blockquote {
            border-color: #ddd;
            border-color: rgba(0, 0, 0, 0.15);
        }

        .well-lg {
            padding: 24px;
            border-radius: 3px;
        }

        .well-sm {
            padding: 9px;
            border-radius: 1px;
        }

        .close {
            float: right;
            font-size: 19.5px;
            font-weight: bold;
            line-height: 1;
            color: #000;
            text-shadow: 0 1px 0 #fff;
            opacity: 0.2;
            filter: alpha(opacity=20);
        }

        .close:hover,
        .close:focus {
            color: #000;
            text-decoration: none;
            cursor: pointer;
            opacity: 0.5;
            filter: alpha(opacity=50);
        }

        button.close {
            padding: 0;
            cursor: pointer;
            background: transparent;
            border: 0;
            -webkit-appearance: none;
        }

        .modal-open {
            overflow: hidden;
        }

        .modal {
            display: none;
            overflow: hidden;
            position: fixed;
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
            z-index: 1050;
            -webkit-overflow-scrolling: touch;
            outline: 0;
        }

        .modal.fade .modal-dialog {
            -webkit-transform: translate(0, -25%);
            -ms-transform: translate(0, -25%);
            -o-transform: translate(0, -25%);
            transform: translate(0, -25%);
            -webkit-transition: -webkit-transform 0.3s ease-out;
            -moz-transition: -moz-transform 0.3s ease-out;
            -o-transition: -o-transform 0.3s ease-out;
            transition: transform 0.3s ease-out;
        }

        .modal.in .modal-dialog {
            -webkit-transform: translate(0, 0);
            -ms-transform: translate(0, 0);
            -o-transform: translate(0, 0);
            transform: translate(0, 0);
        }

        .modal-open .modal {
            overflow-x: hidden;
            overflow-y: auto;
        }

        .modal-dialog {
            position: relative;
            width: auto;
            margin: 10px;
        }

        .modal-content {
            position: relative;
            background-color: #fff;
            border: 1px solid #999;
            border: 1px solid rgba(0, 0, 0, 0.2);
            border-radius: 3px;
            -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
            box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
            background-clip: padding-box;
            outline: 0;
        }

        .modal-backdrop {
            position: fixed;
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
            z-index: 1040;
            background-color: #000;
        }

        .modal-backdrop.fade {
            opacity: 0;
            filter: alpha(opacity=0);
        }

        .modal-backdrop.in {
            opacity: 0.5;
            filter: alpha(opacity=50);
        }

        .modal-header {
            padding: 15px;
            border-bottom: 1px solid #e5e5e5;
        }

        .modal-header .close {
            margin-top: -2px;
        }

        .modal-title {
            margin: 0;
            line-height: 1.42857143;
        }

        .modal-body {
            position: relative;
            padding: 15px;
        }

        .modal-footer {
            padding: 15px;
            text-align: right;
            border-top: 1px solid #e5e5e5;
        }

        .modal-footer .btn + .btn {
            margin-left: 5px;
            margin-bottom: 0;
        }

        .modal-footer .btn-group .btn + .btn {
            margin-left: -1px;
        }

        .modal-footer .btn-block + .btn-block {
            margin-left: 0;
        }

        .modal-scrollbar-measure {
            position: absolute;
            top: -9999px;
            width: 50px;
            height: 50px;
            overflow: scroll;
        }

        @media (min-width: 768px) {
            .modal-dialog {
                width: 600px;
                margin: 30px auto;
            }

            .modal-content {
                -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
                box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
            }

            .modal-sm {
                width: 300px;
            }
        }

        @media (min-width: 992px) {
            .modal-lg {
                width: 900px;
            }
        }

        .tooltip {
            position: absolute;
            z-index: 1070;
            display: block;
            font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
            font-style: normal;
            font-weight: normal;
            letter-spacing: normal;
            line-break: auto;
            line-height: 1.42857143;
            text-align: left;
            text-align: start;
            text-decoration: none;
            text-shadow: none;
            text-transform: none;
            white-space: normal;
            word-break: normal;
            word-spacing: normal;
            word-wrap: normal;
            font-size: 12px;
            opacity: 0;
            filter: alpha(opacity=0);
        }

        .tooltip.in {
            opacity: 0.9;
            filter: alpha(opacity=90);
        }

        .tooltip.top {
            margin-top: -3px;
            padding: 5px 0;
        }

        .tooltip.right {
            margin-left: 3px;
            padding: 0 5px;
        }

        .tooltip.bottom {
            margin-top: 3px;
            padding: 5px 0;
        }

        .tooltip.left {
            margin-left: -3px;
            padding: 0 5px;
        }

        .tooltip-inner {
            max-width: 200px;
            padding: 3px 8px;
            color: #fff;
            text-align: center;
            background-color: #000;
            border-radius: 2px;
        }

        .tooltip-arrow {
            position: absolute;
            width: 0;
            height: 0;
            border-color: transparent;
            border-style: solid;
        }

        .tooltip.top .tooltip-arrow {
            bottom: 0;
            left: 50%;
            margin-left: -5px;
            border-width: 5px 5px 0;
            border-top-color: #000;
        }

        .tooltip.top-left .tooltip-arrow {
            bottom: 0;
            right: 5px;
            margin-bottom: -5px;
            border-width: 5px 5px 0;
            border-top-color: #000;
        }

        .tooltip.top-right .tooltip-arrow {
            bottom: 0;
            left: 5px;
            margin-bottom: -5px;
            border-width: 5px 5px 0;
            border-top-color: #000;
        }

        .tooltip.right .tooltip-arrow {
            top: 50%;
            left: 0;
            margin-top: -5px;
            border-width: 5px 5px 5px 0;
            border-right-color: #000;
        }

        .tooltip.left .tooltip-arrow {
            top: 50%;
            right: 0;
            margin-top: -5px;
            border-width: 5px 0 5px 5px;
            border-left-color: #000;
        }

        .tooltip.bottom .tooltip-arrow {
            top: 0;
            left: 50%;
            margin-left: -5px;
            border-width: 0 5px 5px;
            border-bottom-color: #000;
        }

        .tooltip.bottom-left .tooltip-arrow {
            top: 0;
            right: 5px;
            margin-top: -5px;
            border-width: 0 5px 5px;
            border-bottom-color: #000;
        }

        .tooltip.bottom-right .tooltip-arrow {
            top: 0;
            left: 5px;
            margin-top: -5px;
            border-width: 0 5px 5px;
            border-bottom-color: #000;
        }

        .popover {
            position: absolute;
            top: 0;
            left: 0;
            z-index: 1060;
            display: none;
            max-width: 276px;
            padding: 1px;
            font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
            font-style: normal;
            font-weight: normal;
            letter-spacing: normal;
            line-break: auto;
            line-height: 1.42857143;
            text-align: left;
            text-align: start;
            text-decoration: none;
            text-shadow: none;
            text-transform: none;
            white-space: normal;
            word-break: normal;
            word-spacing: normal;
            word-wrap: normal;
            font-size: 13px;
            background-color: #fff;
            background-clip: padding-box;
            border: 1px solid #ccc;
            border: 1px solid rgba(0, 0, 0, 0.2);
            border-radius: 3px;
            -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
            box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
        }

        .popover.top {
            margin-top: -10px;
        }

        .popover.right {
            margin-left: 10px;
        }

        .popover.bottom {
            margin-top: 10px;
        }

        .popover.left {
            margin-left: -10px;
        }

        .popover-title {
            margin: 0;
            padding: 8px 14px;
            font-size: 13px;
            background-color: #f7f7f7;
            border-bottom: 1px solid #ebebeb;
            border-radius: 2px 2px 0 0;
        }

        .popover-content {
            padding: 9px 14px;
        }

        .popover > .arrow,
        .popover > .arrow:after {
            position: absolute;
            display: block;
            width: 0;
            height: 0;
            border-color: transparent;
            border-style: solid;
        }

        .popover > .arrow {
            border-width: 11px;
        }

        .popover > .arrow:after {
            border-width: 10px;
            content: "";
        }

        .popover.top > .arrow {
            left: 50%;
            margin-left: -11px;
            border-bottom-width: 0;
            border-top-color: #999999;
            border-top-color: rgba(0, 0, 0, 0.25);
            bottom: -11px;
        }

        .popover.top > .arrow:after {
            content: " ";
            bottom: 1px;
            margin-left: -10px;
            border-bottom-width: 0;
            border-top-color: #fff;
        }

        .popover.right > .arrow {
            top: 50%;
            left: -11px;
            margin-top: -11px;
            border-left-width: 0;
            border-right-color: #999999;
            border-right-color: rgba(0, 0, 0, 0.25);
        }

        .popover.right > .arrow:after {
            content: " ";
            left: 1px;
            bottom: -10px;
            border-left-width: 0;
            border-right-color: #fff;
        }

        .popover.bottom > .arrow {
            left: 50%;
            margin-left: -11px;
            border-top-width: 0;
            border-bottom-color: #999999;
            border-bottom-color: rgba(0, 0, 0, 0.25);
            top: -11px;
        }

        .popover.bottom > .arrow:after {
            content: " ";
            top: 1px;
            margin-left: -10px;
            border-top-width: 0;
            border-bottom-color: #fff;
        }

        .popover.left > .arrow {
            top: 50%;
            right: -11px;
            margin-top: -11px;
            border-right-width: 0;
            border-left-color: #999999;
            border-left-color: rgba(0, 0, 0, 0.25);
        }

        .popover.left > .arrow:after {
            content: " ";
            right: 1px;
            border-right-width: 0;
            border-left-color: #fff;
            bottom: -10px;
        }

        .carousel {
            position: relative;
        }

        .carousel-inner {
            position: relative;
            overflow: hidden;
            width: 100%;
        }

        .carousel-inner > .item {
            display: none;
            position: relative;
            -webkit-transition: 0.6s ease-in-out left;
            -o-transition: 0.6s ease-in-out left;
            transition: 0.6s ease-in-out left;
        }

        .carousel-inner > .item > img,
        .carousel-inner > .item > a > img {
            line-height: 1;
        }

        @media all and (transform-3d), (-webkit-transform-3d) {
            .carousel-inner > .item {
                -webkit-transition: -webkit-transform 0.6s ease-in-out;
                -moz-transition: -moz-transform 0.6s ease-in-out;
                -o-transition: -o-transform 0.6s ease-in-out;
                transition: transform 0.6s ease-in-out;
                -webkit-backface-visibility: hidden;
                -moz-backface-visibility: hidden;
                backface-visibility: hidden;
                -webkit-perspective: 1000px;
                -moz-perspective: 1000px;
                perspective: 1000px;
            }

            .carousel-inner > .item.next,
            .carousel-inner > .item.active.right {
                -webkit-transform: translate3d(100%, 0, 0);
                transform: translate3d(100%, 0, 0);
                left: 0;
            }

            .carousel-inner > .item.prev,
            .carousel-inner > .item.active.left {
                -webkit-transform: translate3d(-100%, 0, 0);
                transform: translate3d(-100%, 0, 0);
                left: 0;
            }

            .carousel-inner > .item.next.left,
            .carousel-inner > .item.prev.right,
            .carousel-inner > .item.active {
                -webkit-transform: translate3d(0, 0, 0);
                transform: translate3d(0, 0, 0);
                left: 0;
            }
        }

        .carousel-inner > .active,
        .carousel-inner > .next,
        .carousel-inner > .prev {
            display: block;
        }

        .carousel-inner > .active {
            left: 0;
        }

        .carousel-inner > .next,
        .carousel-inner > .prev {
            position: absolute;
            top: 0;
            width: 100%;
        }

        .carousel-inner > .next {
            left: 100%;
        }

        .carousel-inner > .prev {
            left: -100%;
        }

        .carousel-inner > .next.left,
        .carousel-inner > .prev.right {
            left: 0;
        }

        .carousel-inner > .active.left {
            left: -100%;
        }

        .carousel-inner > .active.right {
            left: 100%;
        }

        .carousel-control {
            position: absolute;
            top: 0;
            left: 0;
            bottom: 0;
            width: 15%;
            opacity: 0.5;
            filter: alpha(opacity=50);
            font-size: 20px;
            color: #fff;
            text-align: center;
            text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
            background-color: rgba(0, 0, 0, 0);
        }

        .carousel-control.left {
            background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
            background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
            background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
            background-repeat: repeat-x;
            filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
        }

        .carousel-control.right {
            left: auto;
            right: 0;
            background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
            background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
            background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
            background-repeat: repeat-x;
            filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
        }

        .carousel-control:hover,
        .carousel-control:focus {
            outline: 0;
            color: #fff;
            text-decoration: none;
            opacity: 0.9;
            filter: alpha(opacity=90);
        }

        .carousel-control .icon-prev,
        .carousel-control .icon-next,
        .carousel-control .glyphicon-chevron-left,
        .carousel-control .glyphicon-chevron-right {
            position: absolute;
            top: 50%;
            margin-top: -10px;
            z-index: 5;
            display: inline-block;
        }

        .carousel-control .icon-prev,
        .carousel-control .glyphicon-chevron-left {
            left: 50%;
            margin-left: -10px;
        }

        .carousel-control .icon-next,
        .carousel-control .glyphicon-chevron-right {
            right: 50%;
            margin-right: -10px;
        }

        .carousel-control .icon-prev,
        .carousel-control .icon-next {
            width: 20px;
            height: 20px;
            line-height: 1;
            font-family: serif;
        }

        .carousel-control .icon-prev:before {
            content: '\2039';
        }

        .carousel-control .icon-next:before {
            content: '\203a';
        }

        .carousel-indicators {
            position: absolute;
            bottom: 10px;
            left: 50%;
            z-index: 15;
            width: 60%;
            margin-left: -30%;
            padding-left: 0;
            list-style: none;
            text-align: center;
        }

        .carousel-indicators li {
            display: inline-block;
            width: 10px;
            height: 10px;
            margin: 1px;
            text-indent: -999px;
            border: 1px solid #fff;
            border-radius: 10px;
            cursor: pointer;
            background-color: #000 \9;
            background-color: rgba(0, 0, 0, 0);
        }

        .carousel-indicators .active {
            margin: 0;
            width: 12px;
            height: 12px;
            background-color: #fff;
        }

        .carousel-caption {
            position: absolute;
            left: 15%;
            right: 15%;
            bottom: 20px;
            z-index: 10;
            padding-top: 20px;
            padding-bottom: 20px;
            color: #fff;
            text-align: center;
            text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
        }

        .carousel-caption .btn {
            text-shadow: none;
        }

        @media screen and (min-width: 768px) {
            .carousel-control .glyphicon-chevron-left,
            .carousel-control .glyphicon-chevron-right,
            .carousel-control .icon-prev,
            .carousel-control .icon-next {
                width: 30px;
                height: 30px;
                margin-top: -10px;
                font-size: 30px;
            }

            .carousel-control .glyphicon-chevron-left,
            .carousel-control .icon-prev {
                margin-left: -10px;
            }

            .carousel-control .glyphicon-chevron-right,
            .carousel-control .icon-next {
                margin-right: -10px;
            }

            .carousel-caption {
                left: 20%;
                right: 20%;
                padding-bottom: 30px;
            }

            .carousel-indicators {
                bottom: 20px;
            }
        }

        .clearfix:before,
        .clearfix:after,
        .dl-horizontal dd:before,
        .dl-horizontal dd:after,
        .container:before,
        .container:after,
        .container-fluid:before,
        .container-fluid:after,
        .row:before,
        .row:after,
        .form-horizontal .form-group:before,
        .form-horizontal .form-group:after,
        .btn-toolbar:before,
        .btn-toolbar:after,
        .btn-group-vertical > .btn-group:before,
        .btn-group-vertical > .btn-group:after,
        .nav:before,
        .nav:after,
        .navbar:before,
        .navbar:after,
        .navbar-header:before,
        .navbar-header:after,
        .navbar-collapse:before,
        .navbar-collapse:after,
        .pager:before,
        .pager:after,
        .panel-body:before,
        .panel-body:after,
        .modal-header:before,
        .modal-header:after,
        .modal-footer:before,
        .modal-footer:after,
        .item_buttons:before,
        .item_buttons:after {
            content: " ";
            display: table;
        }

        .clearfix:after,
        .dl-horizontal dd:after,
        .container:after,
        .container-fluid:after,
        .row:after,
        .form-horizontal .form-group:after,
        .btn-toolbar:after,
        .btn-group-vertical > .btn-group:after,
        .nav:after,
        .navbar:after,
        .navbar-header:after,
        .navbar-collapse:after,
        .pager:after,
        .panel-body:after,
        .modal-header:after,
        .modal-footer:after,
        .item_buttons:after {
            clear: both;
        }

        .center-block {
            display: block;
            margin-left: auto;
            margin-right: auto;
        }

        .pull-right {
            float: right !important;
        }

        .pull-left {
            float: left !important;
        }

        .hide {
            display: none !important;
        }

        .show {
            display: block !important;
        }

        .invisible {
            visibility: hidden;
        }

        .text-hide {
            font: 0/0 a;
            color: transparent;
            text-shadow: none;
            background-color: transparent;
            border: 0;
        }

        .hidden {
            display: none !important;
        }

        .affix {
            position: fixed;
        }

        @-ms-viewport {
            width: device-width;
        }

        .visible-xs,
        .visible-sm,
        .visible-md,
        .visible-lg {
            display: none !important;
        }

        .visible-xs-block,
        .visible-xs-inline,
        .visible-xs-inline-block,
        .visible-sm-block,
        .visible-sm-inline,
        .visible-sm-inline-block,
        .visible-md-block,
        .visible-md-inline,
        .visible-md-inline-block,
        .visible-lg-block,
        .visible-lg-inline,
        .visible-lg-inline-block {
            display: none !important;
        }

        @media (max-width: 767px) {
            .visible-xs {
                display: block !important;
            }

            table.visible-xs {
                display: table !important;
            }

            tr.visible-xs {
                display: table-row !important;
            }

            th.visible-xs,
            td.visible-xs {
                display: table-cell !important;
            }
        }

        @media (max-width: 767px) {
            .visible-xs-block {
                display: block !important;
            }
        }

        @media (max-width: 767px) {
            .visible-xs-inline {
                display: inline !important;
            }
        }

        @media (max-width: 767px) {
            .visible-xs-inline-block {
                display: inline-block !important;
            }
        }

        @media (min-width: 768px) and (max-width: 991px) {
            .visible-sm {
                display: block !important;
            }

            table.visible-sm {
                display: table !important;
            }

            tr.visible-sm {
                display: table-row !important;
            }

            th.visible-sm,
            td.visible-sm {
                display: table-cell !important;
            }
        }

        @media (min-width: 768px) and (max-width: 991px) {
            .visible-sm-block {
                display: block !important;
            }
        }

        @media (min-width: 768px) and (max-width: 991px) {
            .visible-sm-inline {
                display: inline !important;
            }
        }

        @media (min-width: 768px) and (max-width: 991px) {
            .visible-sm-inline-block {
                display: inline-block !important;
            }
        }

        @media (min-width: 992px) and (max-width: 1199px) {
            .visible-md {
                display: block !important;
            }

            table.visible-md {
                display: table !important;
            }

            tr.visible-md {
                display: table-row !important;
            }

            th.visible-md,
            td.visible-md {
                display: table-cell !important;
            }
        }

        @media (min-width: 992px) and (max-width: 1199px) {
            .visible-md-block {
                display: block !important;
            }
        }

        @media (min-width: 992px) and (max-width: 1199px) {
            .visible-md-inline {
                display: inline !important;
            }
        }

        @media (min-width: 992px) and (max-width: 1199px) {
            .visible-md-inline-block {
                display: inline-block !important;
            }
        }

        @media (min-width: 1200px) {
            .visible-lg {
                display: block !important;
            }

            table.visible-lg {
                display: table !important;
            }

            tr.visible-lg {
                display: table-row !important;
            }

            th.visible-lg,
            td.visible-lg {
                display: table-cell !important;
            }
        }

        @media (min-width: 1200px) {
            .visible-lg-block {
                display: block !important;
            }
        }

        @media (min-width: 1200px) {
            .visible-lg-inline {
                display: inline !important;
            }
        }

        @media (min-width: 1200px) {
            .visible-lg-inline-block {
                display: inline-block !important;
            }
        }

        @media (max-width: 767px) {
            .hidden-xs {
                display: none !important;
            }
        }

        @media (min-width: 768px) and (max-width: 991px) {
            .hidden-sm {
                display: none !important;
            }
        }

        @media (min-width: 992px) and (max-width: 1199px) {
            .hidden-md {
                display: none !important;
            }
        }

        @media (min-width: 1200px) {
            .hidden-lg {
                display: none !important;
            }
        }

        .visible-print {
            display: none !important;
        }

        @media print {
            .visible-print {
                display: block !important;
            }

            table.visible-print {
                display: table !important;
            }

            tr.visible-print {
                display: table-row !important;
            }

            th.visible-print,
            td.visible-print {
                display: table-cell !important;
            }
        }

        .visible-print-block {
            display: none !important;
        }

        @media print {
            .visible-print-block {
                display: block !important;
            }
        }

        .visible-print-inline {
            display: none !important;
        }

        @media print {
            .visible-print-inline {
                display: inline !important;
            }
        }

        .visible-print-inline-block {
            display: none !important;
        }

        @media print {
            .visible-print-inline-block {
                display: inline-block !important;
            }
        }

        @media print {
            .hidden-print {
                display: none !important;
            }
        }

        /*!
*
* Font Awesome
*
*/
        /*!
 *  Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */
        /* FONT PATH
 * -------------------------- */
        @font-face {
            font-family: 'FontAwesome';
            src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0');
            src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');
            font-weight: normal;
            font-style: normal;
        }

        .fa {
            display: inline-block;
            font: normal normal normal 14px/1 FontAwesome;
            font-size: inherit;
            text-rendering: auto;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }

        /* makes the font 33% larger relative to the icon container */
        .fa-lg {
            font-size: 1.33333333em;
            line-height: 0.75em;
            vertical-align: -15%;
        }

        .fa-2x {
            font-size: 2em;
        }

        .fa-3x {
            font-size: 3em;
        }

        .fa-4x {
            font-size: 4em;
        }

        .fa-5x {
            font-size: 5em;
        }

        .fa-fw {
            width: 1.28571429em;
            text-align: center;
        }

        .fa-ul {
            padding-left: 0;
            margin-left: 2.14285714em;
            list-style-type: none;
        }

        .fa-ul > li {
            position: relative;
        }

        .fa-li {
            position: absolute;
            left: -2.14285714em;
            width: 2.14285714em;
            top: 0.14285714em;
            text-align: center;
        }

        .fa-li.fa-lg {
            left: -1.85714286em;
        }

        .fa-border {
            padding: .2em .25em .15em;
            border: solid 0.08em #eee;
            border-radius: .1em;
        }

        .pull-right {
            float: right;
        }

        .pull-left {
            float: left;
        }

        .fa.pull-left {
            margin-right: .3em;
        }

        .fa.pull-right {
            margin-left: .3em;
        }

        .fa-spin {
            -webkit-animation: fa-spin 2s infinite linear;
            animation: fa-spin 2s infinite linear;
        }

        @-webkit-keyframes fa-spin {
            0% {
                -webkit-transform: rotate(0deg);
                transform: rotate(0deg);
            }
            100% {
                -webkit-transform: rotate(359deg);
                transform: rotate(359deg);
            }
        }

        @keyframes fa-spin {
            0% {
                -webkit-transform: rotate(0deg);
                transform: rotate(0deg);
            }
            100% {
                -webkit-transform: rotate(359deg);
                transform: rotate(359deg);
            }
        }

        .fa-rotate-90 {
            filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
            -webkit-transform: rotate(90deg);
            -ms-transform: rotate(90deg);
            transform: rotate(90deg);
        }

        .fa-rotate-180 {
            filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
            -webkit-transform: rotate(180deg);
            -ms-transform: rotate(180deg);
            transform: rotate(180deg);
        }

        .fa-rotate-270 {
            filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
            -webkit-transform: rotate(270deg);
            -ms-transform: rotate(270deg);
            transform: rotate(270deg);
        }

        .fa-flip-horizontal {
            filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
            -webkit-transform: scale(-1, 1);
            -ms-transform: scale(-1, 1);
            transform: scale(-1, 1);
        }

        .fa-flip-vertical {
            filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
            -webkit-transform: scale(1, -1);
            -ms-transform: scale(1, -1);
            transform: scale(1, -1);
        }

        :root .fa-rotate-90,
        :root .fa-rotate-180,
        :root .fa-rotate-270,
        :root .fa-flip-horizontal,
        :root .fa-flip-vertical {
            filter: none;
        }

        .fa-stack {
            position: relative;
            display: inline-block;
            width: 2em;
            height: 2em;
            line-height: 2em;
            vertical-align: middle;
        }

        .fa-stack-1x,
        .fa-stack-2x {
            position: absolute;
            left: 0;
            width: 100%;
            text-align: center;
        }

        .fa-stack-1x {
            line-height: inherit;
        }

        .fa-stack-2x {
            font-size: 2em;
        }

        .fa-inverse {
            color: #fff;
        }

        /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
   readers do not read off random characters that represent icons */
        .fa-glass:before {
            content: "\f000";
        }

        .fa-music:before {
            content: "\f001";
        }

        .fa-search:before {
            content: "\f002";
        }

        .fa-envelope-o:before {
            content: "\f003";
        }

        .fa-heart:before {
            content: "\f004";
        }

        .fa-star:before {
            content: "\f005";
        }

        .fa-star-o:before {
            content: "\f006";
        }

        .fa-user:before {
            content: "\f007";
        }

        .fa-film:before {
            content: "\f008";
        }

        .fa-th-large:before {
            content: "\f009";
        }

        .fa-th:before {
            content: "\f00a";
        }

        .fa-th-list:before {
            content: "\f00b";
        }

        .fa-check:before {
            content: "\f00c";
        }

        .fa-remove:before,
        .fa-close:before,
        .fa-times:before {
            content: "\f00d";
        }

        .fa-search-plus:before {
            content: "\f00e";
        }

        .fa-search-minus:before {
            content: "\f010";
        }

        .fa-power-off:before {
            content: "\f011";
        }

        .fa-signal:before {
            content: "\f012";
        }

        .fa-gear:before,
        .fa-cog:before {
            content: "\f013";
        }

        .fa-trash-o:before {
            content: "\f014";
        }

        .fa-home:before {
            content: "\f015";
        }

        .fa-file-o:before {
            content: "\f016";
        }

        .fa-clock-o:before {
            content: "\f017";
        }

        .fa-road:before {
            content: "\f018";
        }

        .fa-download:before {
            content: "\f019";
        }

        .fa-arrow-circle-o-down:before {
            content: "\f01a";
        }

        .fa-arrow-circle-o-up:before {
            content: "\f01b";
        }

        .fa-inbox:before {
            content: "\f01c";
        }

        .fa-play-circle-o:before {
            content: "\f01d";
        }

        .fa-rotate-right:before,
        .fa-repeat:before {
            content: "\f01e";
        }

        .fa-refresh:before {
            content: "\f021";
        }

        .fa-list-alt:before {
            content: "\f022";
        }

        .fa-lock:before {
            content: "\f023";
        }

        .fa-flag:before {
            content: "\f024";
        }

        .fa-headphones:before {
            content: "\f025";
        }

        .fa-volume-off:before {
            content: "\f026";
        }

        .fa-volume-down:before {
            content: "\f027";
        }

        .fa-volume-up:before {
            content: "\f028";
        }

        .fa-qrcode:before {
            content: "\f029";
        }

        .fa-barcode:before {
            content: "\f02a";
        }

        .fa-tag:before {
            content: "\f02b";
        }

        .fa-tags:before {
            content: "\f02c";
        }

        .fa-book:before {
            content: "\f02d";
        }

        .fa-bookmark:before {
            content: "\f02e";
        }

        .fa-print:before {
            content: "\f02f";
        }

        .fa-camera:before {
            content: "\f030";
        }

        .fa-font:before {
            content: "\f031";
        }

        .fa-bold:before {
            content: "\f032";
        }

        .fa-italic:before {
            content: "\f033";
        }

        .fa-text-height:before {
            content: "\f034";
        }

        .fa-text-width:before {
            content: "\f035";
        }

        .fa-align-left:before {
            content: "\f036";
        }

        .fa-align-center:before {
            content: "\f037";
        }

        .fa-align-right:before {
            content: "\f038";
        }

        .fa-align-justify:before {
            content: "\f039";
        }

        .fa-list:before {
            content: "\f03a";
        }

        .fa-dedent:before,
        .fa-outdent:before {
            content: "\f03b";
        }

        .fa-indent:before {
            content: "\f03c";
        }

        .fa-video-camera:before {
            content: "\f03d";
        }

        .fa-photo:before,
        .fa-image:before,
        .fa-picture-o:before {
            content: "\f03e";
        }

        .fa-pencil:before {
            content: "\f040";
        }

        .fa-map-marker:before {
            content: "\f041";
        }

        .fa-adjust:before {
            content: "\f042";
        }

        .fa-tint:before {
            content: "\f043";
        }

        .fa-edit:before,
        .fa-pencil-square-o:before {
            content: "\f044";
        }

        .fa-share-square-o:before {
            content: "\f045";
        }

        .fa-check-square-o:before {
            content: "\f046";
        }

        .fa-arrows:before {
            content: "\f047";
        }

        .fa-step-backward:before {
            content: "\f048";
        }

        .fa-fast-backward:before {
            content: "\f049";
        }

        .fa-backward:before {
            content: "\f04a";
        }

        .fa-play:before {
            content: "\f04b";
        }

        .fa-pause:before {
            content: "\f04c";
        }

        .fa-stop:before {
            content: "\f04d";
        }

        .fa-forward:before {
            content: "\f04e";
        }

        .fa-fast-forward:before {
            content: "\f050";
        }

        .fa-step-forward:before {
            content: "\f051";
        }

        .fa-eject:before {
            content: "\f052";
        }

        .fa-chevron-left:before {
            content: "\f053";
        }

        .fa-chevron-right:before {
            content: "\f054";
        }

        .fa-plus-circle:before {
            content: "\f055";
        }

        .fa-minus-circle:before {
            content: "\f056";
        }

        .fa-times-circle:before {
            content: "\f057";
        }

        .fa-check-circle:before {
            content: "\f058";
        }

        .fa-question-circle:before {
            content: "\f059";
        }

        .fa-info-circle:before {
            content: "\f05a";
        }

        .fa-crosshairs:before {
            content: "\f05b";
        }

        .fa-times-circle-o:before {
            content: "\f05c";
        }

        .fa-check-circle-o:before {
            content: "\f05d";
        }

        .fa-ban:before {
            content: "\f05e";
        }

        .fa-arrow-left:before {
            content: "\f060";
        }

        .fa-arrow-right:before {
            content: "\f061";
        }

        .fa-arrow-up:before {
            content: "\f062";
        }

        .fa-arrow-down:before {
            content: "\f063";
        }

        .fa-mail-forward:before,
        .fa-share:before {
            content: "\f064";
        }

        .fa-expand:before {
            content: "\f065";
        }

        .fa-compress:before {
            content: "\f066";
        }

        .fa-plus:before {
            content: "\f067";
        }

        .fa-minus:before {
            content: "\f068";
        }

        .fa-asterisk:before {
            content: "\f069";
        }

        .fa-exclamation-circle:before {
            content: "\f06a";
        }

        .fa-gift:before {
            content: "\f06b";
        }

        .fa-leaf:before {
            content: "\f06c";
        }

        .fa-fire:before {
            content: "\f06d";
        }

        .fa-eye:before {
            content: "\f06e";
        }

        .fa-eye-slash:before {
            content: "\f070";
        }

        .fa-warning:before,
        .fa-exclamation-triangle:before {
            content: "\f071";
        }

        .fa-plane:before {
            content: "\f072";
        }

        .fa-calendar:before {
            content: "\f073";
        }

        .fa-random:before {
            content: "\f074";
        }

        .fa-comment:before {
            content: "\f075";
        }

        .fa-magnet:before {
            content: "\f076";
        }

        .fa-chevron-up:before {
            content: "\f077";
        }

        .fa-chevron-down:before {
            content: "\f078";
        }

        .fa-retweet:before {
            content: "\f079";
        }

        .fa-shopping-cart:before {
            content: "\f07a";
        }

        .fa-folder:before {
            content: "\f07b";
        }

        .fa-folder-open:before {
            content: "\f07c";
        }

        .fa-arrows-v:before {
            content: "\f07d";
        }

        .fa-arrows-h:before {
            content: "\f07e";
        }

        .fa-bar-chart-o:before,
        .fa-bar-chart:before {
            content: "\f080";
        }

        .fa-twitter-square:before {
            content: "\f081";
        }

        .fa-facebook-square:before {
            content: "\f082";
        }

        .fa-camera-retro:before {
            content: "\f083";
        }

        .fa-key:before {
            content: "\f084";
        }

        .fa-gears:before,
        .fa-cogs:before {
            content: "\f085";
        }

        .fa-comments:before {
            content: "\f086";
        }

        .fa-thumbs-o-up:before {
            content: "\f087";
        }

        .fa-thumbs-o-down:before {
            content: "\f088";
        }

        .fa-star-half:before {
            content: "\f089";
        }

        .fa-heart-o:before {
            content: "\f08a";
        }

        .fa-sign-out:before {
            content: "\f08b";
        }

        .fa-linkedin-square:before {
            content: "\f08c";
        }

        .fa-thumb-tack:before {
            content: "\f08d";
        }

        .fa-external-link:before {
            content: "\f08e";
        }

        .fa-sign-in:before {
            content: "\f090";
        }

        .fa-trophy:before {
            content: "\f091";
        }

        .fa-github-square:before {
            content: "\f092";
        }

        .fa-upload:before {
            content: "\f093";
        }

        .fa-lemon-o:before {
            content: "\f094";
        }

        .fa-phone:before {
            content: "\f095";
        }

        .fa-square-o:before {
            content: "\f096";
        }

        .fa-bookmark-o:before {
            content: "\f097";
        }

        .fa-phone-square:before {
            content: "\f098";
        }

        .fa-twitter:before {
            content: "\f099";
        }

        .fa-facebook:before {
            content: "\f09a";
        }

        .fa-github:before {
            content: "\f09b";
        }

        .fa-unlock:before {
            content: "\f09c";
        }

        .fa-credit-card:before {
            content: "\f09d";
        }

        .fa-rss:before {
            content: "\f09e";
        }

        .fa-hdd-o:before {
            content: "\f0a0";
        }

        .fa-bullhorn:before {
            content: "\f0a1";
        }

        .fa-bell:before {
            content: "\f0f3";
        }

        .fa-certificate:before {
            content: "\f0a3";
        }

        .fa-hand-o-right:before {
            content: "\f0a4";
        }

        .fa-hand-o-left:before {
            content: "\f0a5";
        }

        .fa-hand-o-up:before {
            content: "\f0a6";
        }

        .fa-hand-o-down:before {
            content: "\f0a7";
        }

        .fa-arrow-circle-left:before {
            content: "\f0a8";
        }

        .fa-arrow-circle-right:before {
            content: "\f0a9";
        }

        .fa-arrow-circle-up:before {
            content: "\f0aa";
        }

        .fa-arrow-circle-down:before {
            content: "\f0ab";
        }

        .fa-globe:before {
            content: "\f0ac";
        }

        .fa-wrench:before {
            content: "\f0ad";
        }

        .fa-tasks:before {
            content: "\f0ae";
        }

        .fa-filter:before {
            content: "\f0b0";
        }

        .fa-briefcase:before {
            content: "\f0b1";
        }

        .fa-arrows-alt:before {
            content: "\f0b2";
        }

        .fa-group:before,
        .fa-users:before {
            content: "\f0c0";
        }

        .fa-chain:before,
        .fa-link:before {
            content: "\f0c1";
        }

        .fa-cloud:before {
            content: "\f0c2";
        }

        .fa-flask:before {
            content: "\f0c3";
        }

        .fa-cut:before,
        .fa-scissors:before {
            content: "\f0c4";
        }

        .fa-copy:before,
        .fa-files-o:before {
            content: "\f0c5";
        }

        .fa-paperclip:before {
            content: "\f0c6";
        }

        .fa-save:before,
        .fa-floppy-o:before {
            content: "\f0c7";
        }

        .fa-square:before {
            content: "\f0c8";
        }

        .fa-navicon:before,
        .fa-reorder:before,
        .fa-bars:before {
            content: "\f0c9";
        }

        .fa-list-ul:before {
            content: "\f0ca";
        }

        .fa-list-ol:before {
            content: "\f0cb";
        }

        .fa-strikethrough:before {
            content: "\f0cc";
        }

        .fa-underline:before {
            content: "\f0cd";
        }

        .fa-table:before {
            content: "\f0ce";
        }

        .fa-magic:before {
            content: "\f0d0";
        }

        .fa-truck:before {
            content: "\f0d1";
        }

        .fa-pinterest:before {
            content: "\f0d2";
        }

        .fa-pinterest-square:before {
            content: "\f0d3";
        }

        .fa-google-plus-square:before {
            content: "\f0d4";
        }

        .fa-google-plus:before {
            content: "\f0d5";
        }

        .fa-money:before {
            content: "\f0d6";
        }

        .fa-caret-down:before {
            content: "\f0d7";
        }

        .fa-caret-up:before {
            content: "\f0d8";
        }

        .fa-caret-left:before {
            content: "\f0d9";
        }

        .fa-caret-right:before {
            content: "\f0da";
        }

        .fa-columns:before {
            content: "\f0db";
        }

        .fa-unsorted:before,
        .fa-sort:before {
            content: "\f0dc";
        }

        .fa-sort-down:before,
        .fa-sort-desc:before {
            content: "\f0dd";
        }

        .fa-sort-up:before,
        .fa-sort-asc:before {
            content: "\f0de";
        }

        .fa-envelope:before {
            content: "\f0e0";
        }

        .fa-linkedin:before {
            content: "\f0e1";
        }

        .fa-rotate-left:before,
        .fa-undo:before {
            content: "\f0e2";
        }

        .fa-legal:before,
        .fa-gavel:before {
            content: "\f0e3";
        }

        .fa-dashboard:before,
        .fa-tachometer:before {
            content: "\f0e4";
        }

        .fa-comment-o:before {
            content: "\f0e5";
        }

        .fa-comments-o:before {
            content: "\f0e6";
        }

        .fa-flash:before,
        .fa-bolt:before {
            content: "\f0e7";
        }

        .fa-sitemap:before {
            content: "\f0e8";
        }

        .fa-umbrella:before {
            content: "\f0e9";
        }

        .fa-paste:before,
        .fa-clipboard:before {
            content: "\f0ea";
        }

        .fa-lightbulb-o:before {
            content: "\f0eb";
        }

        .fa-exchange:before {
            content: "\f0ec";
        }

        .fa-cloud-download:before {
            content: "\f0ed";
        }

        .fa-cloud-upload:before {
            content: "\f0ee";
        }

        .fa-user-md:before {
            content: "\f0f0";
        }

        .fa-stethoscope:before {
            content: "\f0f1";
        }

        .fa-suitcase:before {
            content: "\f0f2";
        }

        .fa-bell-o:before {
            content: "\f0a2";
        }

        .fa-coffee:before {
            content: "\f0f4";
        }

        .fa-cutlery:before {
            content: "\f0f5";
        }

        .fa-file-text-o:before {
            content: "\f0f6";
        }

        .fa-building-o:before {
            content: "\f0f7";
        }

        .fa-hospital-o:before {
            content: "\f0f8";
        }

        .fa-ambulance:before {
            content: "\f0f9";
        }

        .fa-medkit:before {
            content: "\f0fa";
        }

        .fa-fighter-jet:before {
            content: "\f0fb";
        }

        .fa-beer:before {
            content: "\f0fc";
        }

        .fa-h-square:before {
            content: "\f0fd";
        }

        .fa-plus-square:before {
            content: "\f0fe";
        }

        .fa-angle-double-left:before {
            content: "\f100";
        }

        .fa-angle-double-right:before {
            content: "\f101";
        }

        .fa-angle-double-up:before {
            content: "\f102";
        }

        .fa-angle-double-down:before {
            content: "\f103";
        }

        .fa-angle-left:before {
            content: "\f104";
        }

        .fa-angle-right:before {
            content: "\f105";
        }

        .fa-angle-up:before {
            content: "\f106";
        }

        .fa-angle-down:before {
            content: "\f107";
        }

        .fa-desktop:before {
            content: "\f108";
        }

        .fa-laptop:before {
            content: "\f109";
        }

        .fa-tablet:before {
            content: "\f10a";
        }

        .fa-mobile-phone:before,
        .fa-mobile:before {
            content: "\f10b";
        }

        .fa-circle-o:before {
            content: "\f10c";
        }

        .fa-quote-left:before {
            content: "\f10d";
        }

        .fa-quote-right:before {
            content: "\f10e";
        }

        .fa-spinner:before {
            content: "\f110";
        }

        .fa-circle:before {
            content: "\f111";
        }

        .fa-mail-reply:before,
        .fa-reply:before {
            content: "\f112";
        }

        .fa-github-alt:before {
            content: "\f113";
        }

        .fa-folder-o:before {
            content: "\f114";
        }

        .fa-folder-open-o:before {
            content: "\f115";
        }

        .fa-smile-o:before {
            content: "\f118";
        }

        .fa-frown-o:before {
            content: "\f119";
        }

        .fa-meh-o:before {
            content: "\f11a";
        }

        .fa-gamepad:before {
            content: "\f11b";
        }

        .fa-keyboard-o:before {
            content: "\f11c";
        }

        .fa-flag-o:before {
            content: "\f11d";
        }

        .fa-flag-checkered:before {
            content: "\f11e";
        }

        .fa-terminal:before {
            content: "\f120";
        }

        .fa-code:before {
            content: "\f121";
        }

        .fa-mail-reply-all:before,
        .fa-reply-all:before {
            content: "\f122";
        }

        .fa-star-half-empty:before,
        .fa-star-half-full:before,
        .fa-star-half-o:before {
            content: "\f123";
        }

        .fa-location-arrow:before {
            content: "\f124";
        }

        .fa-crop:before {
            content: "\f125";
        }

        .fa-code-fork:before {
            content: "\f126";
        }

        .fa-unlink:before,
        .fa-chain-broken:before {
            content: "\f127";
        }

        .fa-question:before {
            content: "\f128";
        }

        .fa-info:before {
            content: "\f129";
        }

        .fa-exclamation:before {
            content: "\f12a";
        }

        .fa-superscript:before {
            content: "\f12b";
        }

        .fa-subscript:before {
            content: "\f12c";
        }

        .fa-eraser:before {
            content: "\f12d";
        }

        .fa-puzzle-piece:before {
            content: "\f12e";
        }

        .fa-microphone:before {
            content: "\f130";
        }

        .fa-microphone-slash:before {
            content: "\f131";
        }

        .fa-shield:before {
            content: "\f132";
        }

        .fa-calendar-o:before {
            content: "\f133";
        }

        .fa-fire-extinguisher:before {
            content: "\f134";
        }

        .fa-rocket:before {
            content: "\f135";
        }

        .fa-maxcdn:before {
            content: "\f136";
        }

        .fa-chevron-circle-left:before {
            content: "\f137";
        }

        .fa-chevron-circle-right:before {
            content: "\f138";
        }

        .fa-chevron-circle-up:before {
            content: "\f139";
        }

        .fa-chevron-circle-down:before {
            content: "\f13a";
        }

        .fa-html5:before {
            content: "\f13b";
        }

        .fa-css3:before {
            content: "\f13c";
        }

        .fa-anchor:before {
            content: "\f13d";
        }

        .fa-unlock-alt:before {
            content: "\f13e";
        }

        .fa-bullseye:before {
            content: "\f140";
        }

        .fa-ellipsis-h:before {
            content: "\f141";
        }

        .fa-ellipsis-v:before {
            content: "\f142";
        }

        .fa-rss-square:before {
            content: "\f143";
        }

        .fa-play-circle:before {
            content: "\f144";
        }

        .fa-ticket:before {
            content: "\f145";
        }

        .fa-minus-square:before {
            content: "\f146";
        }

        .fa-minus-square-o:before {
            content: "\f147";
        }

        .fa-level-up:before {
            content: "\f148";
        }

        .fa-level-down:before {
            content: "\f149";
        }

        .fa-check-square:before {
            content: "\f14a";
        }

        .fa-pencil-square:before {
            content: "\f14b";
        }

        .fa-external-link-square:before {
            content: "\f14c";
        }

        .fa-share-square:before {
            content: "\f14d";
        }

        .fa-compass:before {
            content: "\f14e";
        }

        .fa-toggle-down:before,
        .fa-caret-square-o-down:before {
            content: "\f150";
        }

        .fa-toggle-up:before,
        .fa-caret-square-o-up:before {
            content: "\f151";
        }

        .fa-toggle-right:before,
        .fa-caret-square-o-right:before {
            content: "\f152";
        }

        .fa-euro:before,
        .fa-eur:before {
            content: "\f153";
        }

        .fa-gbp:before {
            content: "\f154";
        }

        .fa-dollar:before,
        .fa-usd:before {
            content: "\f155";
        }

        .fa-rupee:before,
        .fa-inr:before {
            content: "\f156";
        }

        .fa-cny:before,
        .fa-rmb:before,
        .fa-yen:before,
        .fa-jpy:before {
            content: "\f157";
        }

        .fa-ruble:before,
        .fa-rouble:before,
        .fa-rub:before {
            content: "\f158";
        }

        .fa-won:before,
        .fa-krw:before {
            content: "\f159";
        }

        .fa-bitcoin:before,
        .fa-btc:before {
            content: "\f15a";
        }

        .fa-file:before {
            content: "\f15b";
        }

        .fa-file-text:before {
            content: "\f15c";
        }

        .fa-sort-alpha-asc:before {
            content: "\f15d";
        }

        .fa-sort-alpha-desc:before {
            content: "\f15e";
        }

        .fa-sort-amount-asc:before {
            content: "\f160";
        }

        .fa-sort-amount-desc:before {
            content: "\f161";
        }

        .fa-sort-numeric-asc:before {
            content: "\f162";
        }

        .fa-sort-numeric-desc:before {
            content: "\f163";
        }

        .fa-thumbs-up:before {
            content: "\f164";
        }

        .fa-thumbs-down:before {
            content: "\f165";
        }

        .fa-youtube-square:before {
            content: "\f166";
        }

        .fa-youtube:before {
            content: "\f167";
        }

        .fa-xing:before {
            content: "\f168";
        }

        .fa-xing-square:before {
            content: "\f169";
        }

        .fa-youtube-play:before {
            content: "\f16a";
        }

        .fa-dropbox:before {
            content: "\f16b";
        }

        .fa-stack-overflow:before {
            content: "\f16c";
        }

        .fa-instagram:before {
            content: "\f16d";
        }

        .fa-flickr:before {
            content: "\f16e";
        }

        .fa-adn:before {
            content: "\f170";
        }

        .fa-bitbucket:before {
            content: "\f171";
        }

        .fa-bitbucket-square:before {
            content: "\f172";
        }

        .fa-tumblr:before {
            content: "\f173";
        }

        .fa-tumblr-square:before {
            content: "\f174";
        }

        .fa-long-arrow-down:before {
            content: "\f175";
        }

        .fa-long-arrow-up:before {
            content: "\f176";
        }

        .fa-long-arrow-left:before {
            content: "\f177";
        }

        .fa-long-arrow-right:before {
            content: "\f178";
        }

        .fa-apple:before {
            content: "\f179";
        }

        .fa-windows:before {
            content: "\f17a";
        }

        .fa-android:before {
            content: "\f17b";
        }

        .fa-linux:before {
            content: "\f17c";
        }

        .fa-dribbble:before {
            content: "\f17d";
        }

        .fa-skype:before {
            content: "\f17e";
        }

        .fa-foursquare:before {
            content: "\f180";
        }

        .fa-trello:before {
            content: "\f181";
        }

        .fa-female:before {
            content: "\f182";
        }

        .fa-male:before {
            content: "\f183";
        }

        .fa-gittip:before {
            content: "\f184";
        }

        .fa-sun-o:before {
            content: "\f185";
        }

        .fa-moon-o:before {
            content: "\f186";
        }

        .fa-archive:before {
            content: "\f187";
        }

        .fa-bug:before {
            content: "\f188";
        }

        .fa-vk:before {
            content: "\f189";
        }

        .fa-weibo:before {
            content: "\f18a";
        }

        .fa-renren:before {
            content: "\f18b";
        }

        .fa-pagelines:before {
            content: "\f18c";
        }

        .fa-stack-exchange:before {
            content: "\f18d";
        }

        .fa-arrow-circle-o-right:before {
            content: "\f18e";
        }

        .fa-arrow-circle-o-left:before {
            content: "\f190";
        }

        .fa-toggle-left:before,
        .fa-caret-square-o-left:before {
            content: "\f191";
        }

        .fa-dot-circle-o:before {
            content: "\f192";
        }

        .fa-wheelchair:before {
            content: "\f193";
        }

        .fa-vimeo-square:before {
            content: "\f194";
        }

        .fa-turkish-lira:before,
        .fa-try:before {
            content: "\f195";
        }

        .fa-plus-square-o:before {
            content: "\f196";
        }

        .fa-space-shuttle:before {
            content: "\f197";
        }

        .fa-slack:before {
            content: "\f198";
        }

        .fa-envelope-square:before {
            content: "\f199";
        }

        .fa-wordpress:before {
            content: "\f19a";
        }

        .fa-openid:before {
            content: "\f19b";
        }

        .fa-institution:before,
        .fa-bank:before,
        .fa-university:before {
            content: "\f19c";
        }

        .fa-mortar-board:before,
        .fa-graduation-cap:before {
            content: "\f19d";
        }

        .fa-yahoo:before {
            content: "\f19e";
        }

        .fa-google:before {
            content: "\f1a0";
        }

        .fa-reddit:before {
            content: "\f1a1";
        }

        .fa-reddit-square:before {
            content: "\f1a2";
        }

        .fa-stumbleupon-circle:before {
            content: "\f1a3";
        }

        .fa-stumbleupon:before {
            content: "\f1a4";
        }

        .fa-delicious:before {
            content: "\f1a5";
        }

        .fa-digg:before {
            content: "\f1a6";
        }

        .fa-pied-piper:before {
            content: "\f1a7";
        }

        .fa-pied-piper-alt:before {
            content: "\f1a8";
        }

        .fa-drupal:before {
            content: "\f1a9";
        }

        .fa-joomla:before {
            content: "\f1aa";
        }

        .fa-language:before {
            content: "\f1ab";
        }

        .fa-fax:before {
            content: "\f1ac";
        }

        .fa-building:before {
            content: "\f1ad";
        }

        .fa-child:before {
            content: "\f1ae";
        }

        .fa-paw:before {
            content: "\f1b0";
        }

        .fa-spoon:before {
            content: "\f1b1";
        }

        .fa-cube:before {
            content: "\f1b2";
        }

        .fa-cubes:before {
            content: "\f1b3";
        }

        .fa-behance:before {
            content: "\f1b4";
        }

        .fa-behance-square:before {
            content: "\f1b5";
        }

        .fa-steam:before {
            content: "\f1b6";
        }

        .fa-steam-square:before {
            content: "\f1b7";
        }

        .fa-recycle:before {
            content: "\f1b8";
        }

        .fa-automobile:before,
        .fa-car:before {
            content: "\f1b9";
        }

        .fa-cab:before,
        .fa-taxi:before {
            content: "\f1ba";
        }

        .fa-tree:before {
            content: "\f1bb";
        }

        .fa-spotify:before {
            content: "\f1bc";
        }

        .fa-deviantart:before {
            content: "\f1bd";
        }

        .fa-soundcloud:before {
            content: "\f1be";
        }

        .fa-database:before {
            content: "\f1c0";
        }

        .fa-file-pdf-o:before {
            content: "\f1c1";
        }

        .fa-file-word-o:before {
            content: "\f1c2";
        }

        .fa-file-excel-o:before {
            content: "\f1c3";
        }

        .fa-file-powerpoint-o:before {
            content: "\f1c4";
        }

        .fa-file-photo-o:before,
        .fa-file-picture-o:before,
        .fa-file-image-o:before {
            content: "\f1c5";
        }

        .fa-file-zip-o:before,
        .fa-file-archive-o:before {
            content: "\f1c6";
        }

        .fa-file-sound-o:before,
        .fa-file-audio-o:before {
            content: "\f1c7";
        }

        .fa-file-movie-o:before,
        .fa-file-video-o:before {
            content: "\f1c8";
        }

        .fa-file-code-o:before {
            content: "\f1c9";
        }

        .fa-vine:before {
            content: "\f1ca";
        }

        .fa-codepen:before {
            content: "\f1cb";
        }

        .fa-jsfiddle:before {
            content: "\f1cc";
        }

        .fa-life-bouy:before,
        .fa-life-buoy:before,
        .fa-life-saver:before,
        .fa-support:before,
        .fa-life-ring:before {
            content: "\f1cd";
        }

        .fa-circle-o-notch:before {
            content: "\f1ce";
        }

        .fa-ra:before,
        .fa-rebel:before {
            content: "\f1d0";
        }

        .fa-ge:before,
        .fa-empire:before {
            content: "\f1d1";
        }

        .fa-git-square:before {
            content: "\f1d2";
        }

        .fa-git:before {
            content: "\f1d3";
        }

        .fa-hacker-news:before {
            content: "\f1d4";
        }

        .fa-tencent-weibo:before {
            content: "\f1d5";
        }

        .fa-qq:before {
            content: "\f1d6";
        }

        .fa-wechat:before,
        .fa-weixin:before {
            content: "\f1d7";
        }

        .fa-send:before,
        .fa-paper-plane:before {
            content: "\f1d8";
        }

        .fa-send-o:before,
        .fa-paper-plane-o:before {
            content: "\f1d9";
        }

        .fa-history:before {
            content: "\f1da";
        }

        .fa-circle-thin:before {
            content: "\f1db";
        }

        .fa-header:before {
            content: "\f1dc";
        }

        .fa-paragraph:before {
            content: "\f1dd";
        }

        .fa-sliders:before {
            content: "\f1de";
        }

        .fa-share-alt:before {
            content: "\f1e0";
        }

        .fa-share-alt-square:before {
            content: "\f1e1";
        }

        .fa-bomb:before {
            content: "\f1e2";
        }

        .fa-soccer-ball-o:before,
        .fa-futbol-o:before {
            content: "\f1e3";
        }

        .fa-tty:before {
            content: "\f1e4";
        }

        .fa-binoculars:before {
            content: "\f1e5";
        }

        .fa-plug:before {
            content: "\f1e6";
        }

        .fa-slideshare:before {
            content: "\f1e7";
        }

        .fa-twitch:before {
            content: "\f1e8";
        }

        .fa-yelp:before {
            content: "\f1e9";
        }

        .fa-newspaper-o:before {
            content: "\f1ea";
        }

        .fa-wifi:before {
            content: "\f1eb";
        }

        .fa-calculator:before {
            content: "\f1ec";
        }

        .fa-paypal:before {
            content: "\f1ed";
        }

        .fa-google-wallet:before {
            content: "\f1ee";
        }

        .fa-cc-visa:before {
            content: "\f1f0";
        }

        .fa-cc-mastercard:before {
            content: "\f1f1";
        }

        .fa-cc-discover:before {
            content: "\f1f2";
        }

        .fa-cc-amex:before {
            content: "\f1f3";
        }

        .fa-cc-paypal:before {
            content: "\f1f4";
        }

        .fa-cc-stripe:before {
            content: "\f1f5";
        }

        .fa-bell-slash:before {
            content: "\f1f6";
        }

        .fa-bell-slash-o:before {
            content: "\f1f7";
        }

        .fa-trash:before {
            content: "\f1f8";
        }

        .fa-copyright:before {
            content: "\f1f9";
        }

        .fa-at:before {
            content: "\f1fa";
        }

        .fa-eyedropper:before {
            content: "\f1fb";
        }

        .fa-paint-brush:before {
            content: "\f1fc";
        }

        .fa-birthday-cake:before {
            content: "\f1fd";
        }

        .fa-area-chart:before {
            content: "\f1fe";
        }

        .fa-pie-chart:before {
            content: "\f200";
        }

        .fa-line-chart:before {
            content: "\f201";
        }

        .fa-lastfm:before {
            content: "\f202";
        }

        .fa-lastfm-square:before {
            content: "\f203";
        }

        .fa-toggle-off:before {
            content: "\f204";
        }

        .fa-toggle-on:before {
            content: "\f205";
        }

        .fa-bicycle:before {
            content: "\f206";
        }

        .fa-bus:before {
            content: "\f207";
        }

        .fa-ioxhost:before {
            content: "\f208";
        }

        .fa-angellist:before {
            content: "\f209";
        }

        .fa-cc:before {
            content: "\f20a";
        }

        .fa-shekel:before,
        .fa-sheqel:before,
        .fa-ils:before {
            content: "\f20b";
        }

        .fa-meanpath:before {
            content: "\f20c";
        }

        /*!
*
* IPython base
*
*/
        .modal.fade .modal-dialog {
            -webkit-transform: translate(0, 0);
            -ms-transform: translate(0, 0);
            -o-transform: translate(0, 0);
            transform: translate(0, 0);
        }

        code {
            color: #000;
        }

        pre {
            font-size: inherit;
            line-height: inherit;
        }

        label {
            font-weight: normal;
        }

        /* Make the page background atleast 100% the height of the view port */
        /* Make the page itself atleast 70% the height of the view port */
        .border-box-sizing {
            box-sizing: border-box;
            -moz-box-sizing: border-box;
            -webkit-box-sizing: border-box;
        }

        .corner-all {
            border-radius: 2px;
        }

        .no-padding {
            padding: 0px;
        }

        /* Flexible box model classes */
        /* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
        /* This file is a compatability layer.  It allows the usage of flexible box
model layouts accross multiple browsers, including older browsers.  The newest,
universal implementation of the flexible box model is used when available (see
`Modern browsers` comments below).  Browsers that are known to implement this
new spec completely include:

    Firefox 28.0+
    Chrome 29.0+
    Internet Explorer 11+
    Opera 17.0+

Browsers not listed, including Safari, are supported via the styling under the
`Old browsers` comments below.
*/
        .hbox {
            /* Old browsers */
            display: -webkit-box;
            -webkit-box-orient: horizontal;
            -webkit-box-align: stretch;
            display: -moz-box;
            -moz-box-orient: horizontal;
            -moz-box-align: stretch;
            display: box;
            box-orient: horizontal;
            box-align: stretch;
            /* Modern browsers */
            display: flex;
            flex-direction: row;
            align-items: stretch;
        }

        .hbox > * {
            /* Old browsers */
            -webkit-box-flex: 0;
            -moz-box-flex: 0;
            box-flex: 0;
            /* Modern browsers */
            flex: none;
        }

        .vbox {
            /* Old browsers */
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-box-align: stretch;
            display: -moz-box;
            -moz-box-orient: vertical;
            -moz-box-align: stretch;
            display: box;
            box-orient: vertical;
            box-align: stretch;
            /* Modern browsers */
            display: flex;
            flex-direction: column;
            align-items: stretch;
        }

        .vbox > * {
            /* Old browsers */
            -webkit-box-flex: 0;
            -moz-box-flex: 0;
            box-flex: 0;
            /* Modern browsers */
            flex: none;
        }

        .hbox.reverse,
        .vbox.reverse,
        .reverse {
            /* Old browsers */
            -webkit-box-direction: reverse;
            -moz-box-direction: reverse;
            box-direction: reverse;
            /* Modern browsers */
            flex-direction: row-reverse;
        }

        .hbox.box-flex0,
        .vbox.box-flex0,
        .box-flex0 {
            /* Old browsers */
            -webkit-box-flex: 0;
            -moz-box-flex: 0;
            box-flex: 0;
            /* Modern browsers */
            flex: none;
            width: auto;
        }

        .hbox.box-flex1,
        .vbox.box-flex1,
        .box-flex1 {
            /* Old browsers */
            -webkit-box-flex: 1;
            -moz-box-flex: 1;
            box-flex: 1;
            /* Modern browsers */
            flex: 1;
        }

        .hbox.box-flex,
        .vbox.box-flex,
        .box-flex {
            /* Old browsers */
            /* Old browsers */
            -webkit-box-flex: 1;
            -moz-box-flex: 1;
            box-flex: 1;
            /* Modern browsers */
            flex: 1;
        }

        .hbox.box-flex2,
        .vbox.box-flex2,
        .box-flex2 {
            /* Old browsers */
            -webkit-box-flex: 2;
            -moz-box-flex: 2;
            box-flex: 2;
            /* Modern browsers */
            flex: 2;
        }

        .box-group1 {
            /*  Deprecated */
            -webkit-box-flex-group: 1;
            -moz-box-flex-group: 1;
            box-flex-group: 1;
        }

        .box-group2 {
            /* Deprecated */
            -webkit-box-flex-group: 2;
            -moz-box-flex-group: 2;
            box-flex-group: 2;
        }

        .hbox.start,
        .vbox.start,
        .start {
            /* Old browsers */
            -webkit-box-pack: start;
            -moz-box-pack: start;
            box-pack: start;
            /* Modern browsers */
            justify-content: flex-start;
        }

        .hbox.end,
        .vbox.end,
        .end {
            /* Old browsers */
            -webkit-box-pack: end;
            -moz-box-pack: end;
            box-pack: end;
            /* Modern browsers */
            justify-content: flex-end;
        }

        .hbox.center,
        .vbox.center,
        .center {
            /* Old browsers */
            -webkit-box-pack: center;
            -moz-box-pack: center;
            box-pack: center;
            /* Modern browsers */
            justify-content: center;
        }

        .hbox.baseline,
        .vbox.baseline,
        .baseline {
            /* Old browsers */
            -webkit-box-pack: baseline;
            -moz-box-pack: baseline;
            box-pack: baseline;
            /* Modern browsers */
            justify-content: baseline;
        }

        .hbox.stretch,
        .vbox.stretch,
        .stretch {
            /* Old browsers */
            -webkit-box-pack: stretch;
            -moz-box-pack: stretch;
            box-pack: stretch;
            /* Modern browsers */
            justify-content: stretch;
        }

        .hbox.align-start,
        .vbox.align-start,
        .align-start {
            /* Old browsers */
            -webkit-box-align: start;
            -moz-box-align: start;
            box-align: start;
            /* Modern browsers */
            align-items: flex-start;
        }

        .hbox.align-end,
        .vbox.align-end,
        .align-end {
            /* Old browsers */
            -webkit-box-align: end;
            -moz-box-align: end;
            box-align: end;
            /* Modern browsers */
            align-items: flex-end;
        }

        .hbox.align-center,
        .vbox.align-center,
        .align-center {
            /* Old browsers */
            -webkit-box-align: center;
            -moz-box-align: center;
            box-align: center;
            /* Modern browsers */
            align-items: center;
        }

        .hbox.align-baseline,
        .vbox.align-baseline,
        .align-baseline {
            /* Old browsers */
            -webkit-box-align: baseline;
            -moz-box-align: baseline;
            box-align: baseline;
            /* Modern browsers */
            align-items: baseline;
        }

        .hbox.align-stretch,
        .vbox.align-stretch,
        .align-stretch {
            /* Old browsers */
            -webkit-box-align: stretch;
            -moz-box-align: stretch;
            box-align: stretch;
            /* Modern browsers */
            align-items: stretch;
        }

        div.error {
            margin: 2em;
            text-align: center;
        }

        div.error > h1 {
            font-size: 500%;
            line-height: normal;
        }

        div.error > p {
            font-size: 200%;
            line-height: normal;
        }

        div.traceback-wrapper {
            text-align: left;
            max-width: 800px;
            margin: auto;
        }

        /**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
        body {
            background-color: #fff;
            /* This makes sure that the body covers the entire window and needs to
       be in a different element than the display: box in wrapper below */
            position: absolute;
            left: 0px;
            right: 0px;
            top: 0px;
            bottom: 0px;
            overflow: visible;
        }

        body > #header {
            /* Initially hidden to prevent FLOUC */
            display: none;
            background-color: #fff;
            /* Display over codemirror */
            position: relative;
            z-index: 100;
        }

        body > #header #header-container {
            padding-bottom: 5px;
            padding-top: 5px;
            box-sizing: border-box;
            -moz-box-sizing: border-box;
            -webkit-box-sizing: border-box;
        }

        body > #header .header-bar {
            width: 100%;
            height: 1px;
            background: #e7e7e7;
            margin-bottom: -1px;
        }

        @media print {
            body > #header {
                display: none !important;
            }
        }

        #header-spacer {
            width: 100%;
            visibility: hidden;
        }

        @media print {
            #header-spacer {
                display: none;
            }
        }

        #ipython_notebook {
            padding-left: 0px;
            padding-top: 1px;
            padding-bottom: 1px;
        }

        @media (max-width: 991px) {
            #ipython_notebook {
                margin-left: 10px;
            }
        }

        #noscript {
            width: auto;
            padding-top: 16px;
            padding-bottom: 16px;
            text-align: center;
            font-size: 22px;
            color: red;
            font-weight: bold;
        }

        #ipython_notebook img {
            height: 28px;
        }

        #site {
            width: 100%;
            display: none;
            box-sizing: border-box;
            -moz-box-sizing: border-box;
            -webkit-box-sizing: border-box;
            overflow: auto;
        }

        @media print {
            #site {
                height: auto !important;
            }
        }

        /* Smaller buttons */
        .ui-button .ui-button-text {
            padding: 0.2em 0.8em;
            font-size: 77%;
        }

        input.ui-button {
            padding: 0.3em 0.9em;
        }

        span#login_widget {
            float: right;
        }

        span#login_widget > .button,
        #logout {
            color: #333;
            background-color: #fff;
            border-color: #ccc;
        }

        span#login_widget > .button:focus,
        #logout:focus,
        span#login_widget > .button.focus,
        #logout.focus {
            color: #333;
            background-color: #e6e6e6;
            border-color: #8c8c8c;
        }

        span#login_widget > .button:hover,
        #logout:hover {
            color: #333;
            background-color: #e6e6e6;
            border-color: #adadad;
        }

        span#login_widget > .button:active,
        #logout:active,
        span#login_widget > .button.active,
        #logout.active,
        .open > .dropdown-togglespan#login_widget > .button,
        .open > .dropdown-toggle#logout {
            color: #333;
            background-color: #e6e6e6;
            border-color: #adadad;
        }

        span#login_widget > .button:active:hover,
        #logout:active:hover,
        span#login_widget > .button.active:hover,
        #logout.active:hover,
        .open > .dropdown-togglespan#login_widget > .button:hover,
        .open > .dropdown-toggle#logout:hover,
        span#login_widget > .button:active:focus,
        #logout:active:focus,
        span#login_widget > .button.active:focus,
        #logout.active:focus,
        .open > .dropdown-togglespan#login_widget > .button:focus,
        .open > .dropdown-toggle#logout:focus,
        span#login_widget > .button:active.focus,
        #logout:active.focus,
        span#login_widget > .button.active.focus,
        #logout.active.focus,
        .open > .dropdown-togglespan#login_widget > .button.focus,
        .open > .dropdown-toggle#logout.focus {
            color: #333;
            background-color: #d4d4d4;
            border-color: #8c8c8c;
        }

        span#login_widget > .button:active,
        #logout:active,
        span#login_widget > .button.active,
        #logout.active,
        .open > .dropdown-togglespan#login_widget > .button,
        .open > .dropdown-toggle#logout {
            background-image: none;
        }

        span#login_widget > .button.disabled:hover,
        #logout.disabled:hover,
        span#login_widget > .button[disabled]:hover,
        #logout[disabled]:hover,
        fieldset[disabled] span#login_widget > .button:hover,
        fieldset[disabled] #logout:hover,
        span#login_widget > .button.disabled:focus,
        #logout.disabled:focus,
        span#login_widget > .button[disabled]:focus,
        #logout[disabled]:focus,
        fieldset[disabled] span#login_widget > .button:focus,
        fieldset[disabled] #logout:focus,
        span#login_widget > .button.disabled.focus,
        #logout.disabled.focus,
        span#login_widget > .button[disabled].focus,
        #logout[disabled].focus,
        fieldset[disabled] span#login_widget > .button.focus,
        fieldset[disabled] #logout.focus {
            background-color: #fff;
            border-color: #ccc;
        }

        span#login_widget > .button .badge,
        #logout .badge {
            color: #fff;
            background-color: #333;
        }

        .nav-header {
            text-transform: none;
        }

        #header > span {
            margin-top: 10px;
        }

        .modal_stretch .modal-dialog {
            /* Old browsers */
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-box-align: stretch;
            display: -moz-box;
            -moz-box-orient: vertical;
            -moz-box-align: stretch;
            display: box;
            box-orient: vertical;
            box-align: stretch;
            /* Modern browsers */
            display: flex;
            flex-direction: column;
            align-items: stretch;
            min-height: 80vh;
        }

        .modal_stretch .modal-dialog .modal-body {
            max-height: calc(100vh - 200px);
            overflow: auto;
            flex: 1;
        }

        @media (min-width: 768px) {
            .modal .modal-dialog {
                width: 700px;
            }
        }

        @media (min-width: 768px) {
            select.form-control {
                margin-left: 12px;
                margin-right: 12px;
            }
        }

        /*!
*
* IPython auth
*
*/
        .center-nav {
            display: inline-block;
            margin-bottom: -4px;
        }

        /*!
*
* IPython tree view
*
*/
        /* We need an invisible input field on top of the sentense*/
        /* "Drag file onto the list ..." */
        .alternate_upload {
            background-color: none;
            display: inline;
        }

        .alternate_upload.form {
            padding: 0;
            margin: 0;
        }

        .alternate_upload input.fileinput {
            text-align: center;
            vertical-align: middle;
            display: inline;
            opacity: 0;
            z-index: 2;
            width: 12ex;
            margin-right: -12ex;
        }

        .alternate_upload .btn-upload {
            height: 22px;
        }

        /**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
        ul#tabs {
            margin-bottom: 4px;
        }

        ul#tabs a {
            padding-top: 6px;
            padding-bottom: 4px;
        }

        ul.breadcrumb a:focus,
        ul.breadcrumb a:hover {
            text-decoration: none;
        }

        ul.breadcrumb i.icon-home {
            font-size: 16px;
            margin-right: 4px;
        }

        ul.breadcrumb span {
            color: #5e5e5e;
        }

        .list_toolbar {
            padding: 4px 0 4px 0;
            vertical-align: middle;
        }

        .list_toolbar .tree-buttons {
            padding-top: 1px;
        }

        .dynamic-buttons {
            padding-top: 3px;
            display: inline-block;
        }

        .list_toolbar [class*="span"] {
            min-height: 24px;
        }

        .list_header {
            font-weight: bold;
            background-color: #EEE;
        }

        .list_placeholder {
            font-weight: bold;
            padding-top: 4px;
            padding-bottom: 4px;
            padding-left: 7px;
            padding-right: 7px;
        }

        .list_container {
            margin-top: 4px;
            margin-bottom: 20px;
            border: 1px solid #ddd;
            border-radius: 2px;
        }

        .list_container > div {
            border-bottom: 1px solid #ddd;
        }

        .list_container > div:hover .list-item {
            background-color: red;
        }

        .list_container > div:last-child {
            border: none;
        }

        .list_item:hover .list_item {
            background-color: #ddd;
        }

        .list_item a {
            text-decoration: none;
        }

        .list_item:hover {
            background-color: #fafafa;
        }

        .list_header > div,
        .list_item > div {
            padding-top: 4px;
            padding-bottom: 4px;
            padding-left: 7px;
            padding-right: 7px;
            line-height: 22px;
        }

        .list_header > div input,
        .list_item > div input {
            margin-right: 7px;
            margin-left: 14px;
            vertical-align: baseline;
            line-height: 22px;
            position: relative;
            top: -1px;
        }

        .list_header > div .item_link,
        .list_item > div .item_link {
            margin-left: -1px;
            vertical-align: baseline;
            line-height: 22px;
        }

        .new-file input[type=checkbox] {
            visibility: hidden;
        }

        .item_name {
            line-height: 22px;
            height: 24px;
        }

        .item_icon {
            font-size: 14px;
            color: #5e5e5e;
            margin-right: 7px;
            margin-left: 7px;
            line-height: 22px;
            vertical-align: baseline;
        }

        .item_buttons {
            line-height: 1em;
            margin-left: -5px;
        }

        .item_buttons .btn,
        .item_buttons .btn-group,
        .item_buttons .input-group {
            float: left;
        }

        .item_buttons > .btn,
        .item_buttons > .btn-group,
        .item_buttons > .input-group {
            margin-left: 5px;
        }

        .item_buttons .btn {
            min-width: 13ex;
        }

        .item_buttons .running-indicator {
            padding-top: 4px;
            color: #5cb85c;
        }

        .item_buttons .kernel-name {
            padding-top: 4px;
            color: #5bc0de;
            margin-right: 7px;
            float: left;
        }

        .toolbar_info {
            height: 24px;
            line-height: 24px;
        }

        .list_item input:not([type=checkbox]) {
            padding-top: 3px;
            padding-bottom: 3px;
            height: 22px;
            line-height: 14px;
            margin: 0px;
        }

        .highlight_text {
            color: blue;
        }

        #project_name {
            display: inline-block;
            padding-left: 7px;
            margin-left: -2px;
        }

        #project_name > .breadcrumb {
            padding: 0px;
            margin-bottom: 0px;
            background-color: transparent;
            font-weight: bold;
        }

        #tree-selector {
            padding-right: 0px;
        }

        #button-select-all {
            min-width: 50px;
        }

        #select-all {
            margin-left: 7px;
            margin-right: 2px;
        }

        .menu_icon {
            margin-right: 2px;
        }

        .tab-content .row {
            margin-left: 0px;
            margin-right: 0px;
        }

        .folder_icon:before {
            display: inline-block;
            font: normal normal normal 14px/1 FontAwesome;
            font-size: inherit;
            text-rendering: auto;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            content: "\f114";
        }

        .folder_icon:before.pull-left {
            margin-right: .3em;
        }

        .folder_icon:before.pull-right {
            margin-left: .3em;
        }

        .notebook_icon:before {
            display: inline-block;
            font: normal normal normal 14px/1 FontAwesome;
            font-size: inherit;
            text-rendering: auto;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            content: "\f02d";
            position: relative;
            top: -1px;
        }

        .notebook_icon:before.pull-left {
            margin-right: .3em;
        }

        .notebook_icon:before.pull-right {
            margin-left: .3em;
        }

        .running_notebook_icon:before {
            display: inline-block;
            font: normal normal normal 14px/1 FontAwesome;
            font-size: inherit;
            text-rendering: auto;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            content: "\f02d";
            position: relative;
            top: -1px;
            color: #5cb85c;
        }

        .running_notebook_icon:before.pull-left {
            margin-right: .3em;
        }

        .running_notebook_icon:before.pull-right {
            margin-left: .3em;
        }

        .file_icon:before {
            display: inline-block;
            font: normal normal normal 14px/1 FontAwesome;
            font-size: inherit;
            text-rendering: auto;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            content: "\f016";
            position: relative;
            top: -2px;
        }

        .file_icon:before.pull-left {
            margin-right: .3em;
        }

        .file_icon:before.pull-right {
            margin-left: .3em;
        }

        #notebook_toolbar .pull-right {
            padding-top: 0px;
            margin-right: -1px;
        }

        ul#new-menu {
            left: auto;
            right: 0;
        }

        .kernel-menu-icon {
            padding-right: 12px;
            width: 24px;
            content: "\f096";
        }

        .kernel-menu-icon:before {
            content: "\f096";
        }

        .kernel-menu-icon-current:before {
            content: "\f00c";
        }

        #tab_content {
            padding-top: 20px;
        }

        #running .panel-group .panel {
            margin-top: 3px;
            margin-bottom: 1em;
        }

        #running .panel-group .panel .panel-heading {
            background-color: #EEE;
            padding-top: 4px;
            padding-bottom: 4px;
            padding-left: 7px;
            padding-right: 7px;
            line-height: 22px;
        }

        #running .panel-group .panel .panel-heading a:focus,
        #running .panel-group .panel .panel-heading a:hover {
            text-decoration: none;
        }

        #running .panel-group .panel .panel-body {
            padding: 0px;
        }

        #running .panel-group .panel .panel-body .list_container {
            margin-top: 0px;
            margin-bottom: 0px;
            border: 0px;
            border-radius: 0px;
        }

        #running .panel-group .panel .panel-body .list_container .list_item {
            border-bottom: 1px solid #ddd;
        }

        #running .panel-group .panel .panel-body .list_container .list_item:last-child {
            border-bottom: 0px;
        }

        .delete-button {
            display: none;
        }

        .duplicate-button {
            display: none;
        }

        .rename-button {
            display: none;
        }

        .shutdown-button {
            display: none;
        }

        .dynamic-instructions {
            display: inline-block;
            padding-top: 4px;
        }

        /*!
*
* IPython text editor webapp
*
*/
        .selected-keymap i.fa {
            padding: 0px 5px;
        }

        .selected-keymap i.fa:before {
            content: "\f00c";
        }

        #mode-menu {
            overflow: auto;
            max-height: 20em;
        }

        .edit_app #header {
            -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
            box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
        }

        .edit_app #menubar .navbar {
            /* Use a negative 1 bottom margin, so the border overlaps the border of the
    header */
            margin-bottom: -1px;
        }

        .dirty-indicator {
            display: inline-block;
            font: normal normal normal 14px/1 FontAwesome;
            font-size: inherit;
            text-rendering: auto;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            width: 20px;
        }

        .dirty-indicator.pull-left {
            margin-right: .3em;
        }

        .dirty-indicator.pull-right {
            margin-left: .3em;
        }

        .dirty-indicator-dirty {
            display: inline-block;
            font: normal normal normal 14px/1 FontAwesome;
            font-size: inherit;
            text-rendering: auto;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            width: 20px;
        }

        .dirty-indicator-dirty.pull-left {
            margin-right: .3em;
        }

        .dirty-indicator-dirty.pull-right {
            margin-left: .3em;
        }

        .dirty-indicator-clean {
            display: inline-block;
            font: normal normal normal 14px/1 FontAwesome;
            font-size: inherit;
            text-rendering: auto;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            width: 20px;
        }

        .dirty-indicator-clean.pull-left {
            margin-right: .3em;
        }

        .dirty-indicator-clean.pull-right {
            margin-left: .3em;
        }

        .dirty-indicator-clean:before {
            display: inline-block;
            font: normal normal normal 14px/1 FontAwesome;
            font-size: inherit;
            text-rendering: auto;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            content: "\f00c";
        }

        .dirty-indicator-clean:before.pull-left {
            margin-right: .3em;
        }

        .dirty-indicator-clean:before.pull-right {
            margin-left: .3em;
        }

        #filename {
            font-size: 16pt;
            display: table;
            padding: 0px 5px;
        }

        #current-mode {
            padding-left: 5px;
            padding-right: 5px;
        }

        #texteditor-backdrop {
            padding-top: 20px;
            padding-bottom: 20px;
        }

        @media not print {
            #texteditor-backdrop {
                background-color: #EEE;
            }
        }

        @media print {
            #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
            #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
                background-color: #fff;
            }
        }

        @media not print {
            #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
            #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
                background-color: #fff;
            }
        }

        @media not print {
            #texteditor-backdrop #texteditor-container {
                padding: 0px;
                background-color: #fff;
                -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
                box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
            }
        }

        /*!
*
* IPython notebook
*
*/
        /* CSS font colors for translated ANSI colors. */
        .ansibold {
            font-weight: bold;
        }

        /* use dark versions for foreground, to improve visibility */
        .ansiblack {
            color: black;
        }

        .ansired {
            color: darkred;
        }

        .ansigreen {
            color: darkgreen;
        }

        .ansiyellow {
            color: #c4a000;
        }

        .ansiblue {
            color: darkblue;
        }

        .ansipurple {
            color: darkviolet;
        }

        .ansicyan {
            color: steelblue;
        }

        .ansigray {
            color: gray;
        }

        /* and light for background, for the same reason */
        .ansibgblack {
            background-color: black;
        }

        .ansibgred {
            background-color: red;
        }

        .ansibggreen {
            background-color: green;
        }

        .ansibgyellow {
            background-color: yellow;
        }

        .ansibgblue {
            background-color: blue;
        }

        .ansibgpurple {
            background-color: magenta;
        }

        .ansibgcyan {
            background-color: cyan;
        }

        .ansibggray {
            background-color: gray;
        }

        div.cell {
            /* Old browsers */
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-box-align: stretch;
            display: -moz-box;
            -moz-box-orient: vertical;
            -moz-box-align: stretch;
            display: box;
            box-orient: vertical;
            box-align: stretch;
            /* Modern browsers */
            display: flex;
            flex-direction: column;
            align-items: stretch;
            border-radius: 2px;
            box-sizing: border-box;
            -moz-box-sizing: border-box;
            -webkit-box-sizing: border-box;
            border-width: 1px;
            border-style: solid;
            border-color: transparent;
            width: 100%;
            padding: 5px;
            /* This acts as a spacer between cells, that is outside the border */
            margin: 0px;
            outline: none;
            border-left-width: 1px;
            padding-left: 5px;
            background: linear-gradient(to right, transparent -40px, transparent 1px, transparent 1px, transparent 100%);
        }

        div.cell.jupyter-soft-selected {
            border-left-color: #90CAF9;
            border-left-color: #E3F2FD;
            border-left-width: 1px;
            padding-left: 5px;
            border-right-color: #E3F2FD;
            border-right-width: 1px;
            background: #E3F2FD;
        }

        @media print {
            div.cell.jupyter-soft-selected {
                border-color: transparent;
            }
        }

        div.cell.selected {
            border-color: #ababab;
            border-left-width: 0px;
            padding-left: 6px;
            background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 5px, transparent 5px, transparent 100%);
        }

        @media print {
            div.cell.selected {
                border-color: transparent;
            }
        }

        div.cell.selected.jupyter-soft-selected {
            border-left-width: 0;
            padding-left: 6px;
            background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 7px, #E3F2FD 7px, #E3F2FD 100%);
        }

        .edit_mode div.cell.selected {
            border-color: #66BB6A;
            border-left-width: 0px;
            padding-left: 6px;
            background: linear-gradient(to right, #66BB6A -40px, #66BB6A 5px, transparent 5px, transparent 100%);
        }

        @media print {
            .edit_mode div.cell.selected {
                border-color: transparent;
            }
        }

        .prompt {
            /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
            min-width: 14ex;
            /* This padding is tuned to match the padding on the CodeMirror editor. */
            padding: 0.4em;
            margin: 0px;
            font-family: monospace;
            text-align: right;
            /* This has to match that of the the CodeMirror class line-height below */
            line-height: 1.21429em;
            /* Don't highlight prompt number selection */
            -webkit-touch-callout: none;
            -webkit-user-select: none;
            -khtml-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
            user-select: none;
            /* Use default cursor */
            cursor: default;
        }

        @media (max-width: 540px) {
            .prompt {
                text-align: left;
            }
        }

        div.inner_cell {
            /* Old browsers */
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-box-align: stretch;
            display: -moz-box;
            -moz-box-orient: vertical;
            -moz-box-align: stretch;
            display: box;
            box-orient: vertical;
            box-align: stretch;
            /* Modern browsers */
            display: flex;
            flex-direction: column;
            align-items: stretch;
            /* Old browsers */
            -webkit-box-flex: 1;
            -moz-box-flex: 1;
            box-flex: 1;
            /* Modern browsers */
            flex: 1;
        }

        @-moz-document url-prefix() {
            div.inner_cell {
                overflow-x: hidden;
            }
        }

        /* input_area and input_prompt must match in top border and margin for alignment */
        div.input_area {
            border: 1px solid #cfcfcf;
            border-radius: 2px;
            background: #f7f7f7;
            line-height: 1.21429em;
        }

        /* This is needed so that empty prompt areas can collapse to zero height when there
   is no content in the output_subarea and the prompt. The main purpose of this is
   to make sure that empty JavaScript output_subareas have no height. */
        div.prompt:empty {
            padding-top: 0;
            padding-bottom: 0;
        }

        div.unrecognized_cell {
            padding: 5px 5px 5px 0px;
            /* Old browsers */
            display: -webkit-box;
            -webkit-box-orient: horizontal;
            -webkit-box-align: stretch;
            display: -moz-box;
            -moz-box-orient: horizontal;
            -moz-box-align: stretch;
            display: box;
            box-orient: horizontal;
            box-align: stretch;
            /* Modern browsers */
            display: flex;
            flex-direction: row;
            align-items: stretch;
        }

        div.unrecognized_cell .inner_cell {
            border-radius: 2px;
            padding: 5px;
            font-weight: bold;
            color: red;
            border: 1px solid #cfcfcf;
            background: #eaeaea;
        }

        div.unrecognized_cell .inner_cell a {
            color: inherit;
            text-decoration: none;
        }

        div.unrecognized_cell .inner_cell a:hover {
            color: inherit;
            text-decoration: none;
        }

        @media (max-width: 540px) {
            div.unrecognized_cell > div.prompt {
                display: none;
            }
        }

        div.code_cell {
            /* avoid page breaking on code cells when printing */
        }

        @media print {
            div.code_cell {
                page-break-inside: avoid;
            }
        }

        /* any special styling for code cells that are currently running goes here */
        div.input {
            page-break-inside: avoid;
            /* Old browsers */
            display: -webkit-box;
            -webkit-box-orient: horizontal;
            -webkit-box-align: stretch;
            display: -moz-box;
            -moz-box-orient: horizontal;
            -moz-box-align: stretch;
            display: box;
            box-orient: horizontal;
            box-align: stretch;
            /* Modern browsers */
            display: flex;
            flex-direction: row;
            align-items: stretch;
        }

        @media (max-width: 540px) {
            div.input {
                /* Old browsers */
                display: -webkit-box;
                -webkit-box-orient: vertical;
                -webkit-box-align: stretch;
                display: -moz-box;
                -moz-box-orient: vertical;
                -moz-box-align: stretch;
                display: box;
                box-orient: vertical;
                box-align: stretch;
                /* Modern browsers */
                display: flex;
                flex-direction: column;
                align-items: stretch;
            }
        }

        /* input_area and input_prompt must match in top border and margin for alignment */
        div.input_prompt {
            color: #303F9F;
            border-top: 1px solid transparent;
        }

        div.input_area > div.highlight {
            margin: 0.4em;
            border: none;
            padding: 0px;
            background-color: transparent;
        }

        div.input_area > div.highlight > pre {
            margin: 0px;
            border: none;
            padding: 0px;
            background-color: transparent;
        }

        /* The following gets added to the <head> if it is detected that the user has a
 * monospace font with inconsistent normal/bold/italic height.  See
 * notebookmain.js.  Such fonts will have keywords vertically offset with
 * respect to the rest of the text.  The user should select a better font.
 * See: https://github.com/ipython/ipython/issues/1503
 *
 * .CodeMirror span {
 *      vertical-align: bottom;
 * }
 */
        .CodeMirror {
            line-height: 1.21429em;
            /* Changed from 1em to our global default */
            font-size: 14px;
            height: auto;
            /* Changed to auto to autogrow */
            background: none;
            /* Changed from white to allow our bg to show through */
        }

        .CodeMirror-scroll {
            /*  The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
            /*  We have found that if it is visible, vertical scrollbars appear with font size changes.*/
            overflow-y: hidden;
            overflow-x: auto;
        }

        .CodeMirror-lines {
            /* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
            /* we have set a different line-height and want this to scale with that. */
            padding: 0.4em;
        }

        .CodeMirror-linenumber {
            padding: 0 8px 0 4px;
        }

        .CodeMirror-gutters {
            border-bottom-left-radius: 2px;
            border-top-left-radius: 2px;
        }

        .CodeMirror pre {
            /* In CM3 this went to 4px from 0 in CM2. We need the 0 value because of how we size */
            /* .CodeMirror-lines */
            padding: 0;
            border: 0;
            border-radius: 0;
        }

        /*

Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
Adapted from GitHub theme

*/
        .highlight-base {
            color: #000;
        }

        .highlight-variable {
            color: #000;
        }

        .highlight-variable-2 {
            color: #1a1a1a;
        }

        .highlight-variable-3 {
            color: #333333;
        }

        .highlight-string {
            color: #BA2121;
        }

        .highlight-comment {
            color: #408080;
            font-style: italic;
        }

        .highlight-number {
            color: #080;
        }

        .highlight-atom {
            color: #88F;
        }

        .highlight-keyword {
            color: #008000;
            font-weight: bold;
        }

        .highlight-builtin {
            color: #008000;
        }

        .highlight-error {
            color: #f00;
        }

        .highlight-operator {
            color: #AA22FF;
            font-weight: bold;
        }

        .highlight-meta {
            color: #AA22FF;
        }

        /* previously not defined, copying from default codemirror */
        .highlight-def {
            color: #00f;
        }

        .highlight-string-2 {
            color: #f50;
        }

        .highlight-qualifier {
            color: #555;
        }

        .highlight-bracket {
            color: #997;
        }

        .highlight-tag {
            color: #170;
        }

        .highlight-attribute {
            color: #00c;
        }

        .highlight-header {
            color: blue;
        }

        .highlight-quote {
            color: #090;
        }

        .highlight-link {
            color: #00c;
        }

        /* apply the same style to codemirror */
        .cm-s-ipython span.cm-keyword {
            color: #008000;
            font-weight: bold;
        }

        .cm-s-ipython span.cm-atom {
            color: #88F;
        }

        .cm-s-ipython span.cm-number {
            color: #080;
        }

        .cm-s-ipython span.cm-def {
            color: #00f;
        }

        .cm-s-ipython span.cm-variable {
            color: #000;
        }

        .cm-s-ipython span.cm-operator {
            color: #AA22FF;
            font-weight: bold;
        }

        .cm-s-ipython span.cm-variable-2 {
            color: #1a1a1a;
        }

        .cm-s-ipython span.cm-variable-3 {
            color: #333333;
        }

        .cm-s-ipython span.cm-comment {
            color: #408080;
            font-style: italic;
        }

        .cm-s-ipython span.cm-string {
            color: #BA2121;
        }

        .cm-s-ipython span.cm-string-2 {
            color: #f50;
        }

        .cm-s-ipython span.cm-meta {
            color: #AA22FF;
        }

        .cm-s-ipython span.cm-qualifier {
            color: #555;
        }

        .cm-s-ipython span.cm-builtin {
            color: #008000;
        }

        .cm-s-ipython span.cm-bracket {
            color: #997;
        }

        .cm-s-ipython span.cm-tag {
            color: #170;
        }

        .cm-s-ipython span.cm-attribute {
            color: #00c;
        }

        .cm-s-ipython span.cm-header {
            color: blue;
        }

        .cm-s-ipython span.cm-quote {
            color: #090;
        }

        .cm-s-ipython span.cm-link {
            color: #00c;
        }

        .cm-s-ipython span.cm-error {
            color: #f00;
        }

        .cm-s-ipython span.cm-tab {
            background: url();
            background-position: right;
            background-repeat: no-repeat;
        }

        div.output_wrapper {
            /* this position must be relative to enable descendents to be absolute within it */
            position: relative;
            /* Old browsers */
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-box-align: stretch;
            display: -moz-box;
            -moz-box-orient: vertical;
            -moz-box-align: stretch;
            display: box;
            box-orient: vertical;
            box-align: stretch;
            /* Modern browsers */
            display: flex;
            flex-direction: column;
            align-items: stretch;
            z-index: 1;
        }

        /* class for the output area when it should be height-limited */
        div.output_scroll {
            /* ideally, this would be max-height, but FF barfs all over that */
            height: 24em;
            /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
            width: 100%;
            overflow: auto;
            border-radius: 2px;
            -webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
            box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
            display: block;
        }

        /* output div while it is collapsed */
        div.output_collapsed {
            margin: 0px;
            padding: 0px;
            /* Old browsers */
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-box-align: stretch;
            display: -moz-box;
            -moz-box-orient: vertical;
            -moz-box-align: stretch;
            display: box;
            box-orient: vertical;
            box-align: stretch;
            /* Modern browsers */
            display: flex;
            flex-direction: column;
            align-items: stretch;
        }

        div.out_prompt_overlay {
            height: 100%;
            padding: 0px 0.4em;
            position: absolute;
            border-radius: 2px;
        }

        div.out_prompt_overlay:hover {
            /* use inner shadow to get border that is computed the same on WebKit/FF */
            -webkit-box-shadow: inset 0 0 1px #000;
            box-shadow: inset 0 0 1px #000;
            background: rgba(240, 240, 240, 0.5);
        }

        div.output_prompt {
            color: #D84315;
        }

        /* This class is the outer container of all output sections. */
        div.output_area {
            padding: 0px;
            page-break-inside: avoid;
            /* Old browsers */
            display: -webkit-box;
            -webkit-box-orient: horizontal;
            -webkit-box-align: stretch;
            display: -moz-box;
            -moz-box-orient: horizontal;
            -moz-box-align: stretch;
            display: box;
            box-orient: horizontal;
            box-align: stretch;
            /* Modern browsers */
            display: flex;
            flex-direction: row;
            align-items: stretch;
        }

        div.output_area .MathJax_Display {
            text-align: left !important;
        }

        div.output_area .rendered_html table {
            margin-left: 0;
            margin-right: 0;
        }

        div.output_area .rendered_html img {
            margin-left: 0;
            margin-right: 0;
        }

        div.output_area img,
        div.output_area svg {
            max-width: 100%;
            height: auto;
        }

        div.output_area img.unconfined,
        div.output_area svg.unconfined {
            max-width: none;
        }

        /* This is needed to protect the pre formating from global settings such
   as that of bootstrap */
        .output {
            /* Old browsers */
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-box-align: stretch;
            display: -moz-box;
            -moz-box-orient: vertical;
            -moz-box-align: stretch;
            display: box;
            box-orient: vertical;
            box-align: stretch;
            /* Modern browsers */
            display: flex;
            flex-direction: column;
            align-items: stretch;
        }

        @media (max-width: 540px) {
            div.output_area {
                /* Old browsers */
                display: -webkit-box;
                -webkit-box-orient: vertical;
                -webkit-box-align: stretch;
                display: -moz-box;
                -moz-box-orient: vertical;
                -moz-box-align: stretch;
                display: box;
                box-orient: vertical;
                box-align: stretch;
                /* Modern browsers */
                display: flex;
                flex-direction: column;
                align-items: stretch;
            }
        }

        div.output_area pre {
            margin: 0;
            padding: 0;
            border: 0;
            vertical-align: baseline;
            color: black;
            background-color: transparent;
            border-radius: 0;
        }

        /* This class is for the output subarea inside the output_area and after
   the prompt div. */
        div.output_subarea {
            overflow-x: auto;
            padding: 0.4em;
            /* Old browsers */
            -webkit-box-flex: 1;
            -moz-box-flex: 1;
            box-flex: 1;
            /* Modern browsers */
            flex: 1;
            max-width: calc(100% - 14ex);
        }

        div.output_scroll div.output_subarea {
            overflow-x: visible;
        }

        /* The rest of the output_* classes are for special styling of the different
   output types */
        /* all text output has this class: */
        div.output_text {
            text-align: left;
            color: #000;
            /* This has to match that of the the CodeMirror class line-height below */
            line-height: 1.21429em;
        }

        /* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
        div.output_stderr {
            background: #fdd;
            /* very light red background for stderr */
        }

        div.output_latex {
            text-align: left;
        }

        /* Empty output_javascript divs should have no height */
        div.output_javascript:empty {
            padding: 0;
        }

        .js-error {
            color: darkred;
        }

        /* raw_input styles */
        div.raw_input_container {
            line-height: 1.21429em;
            padding-top: 5px;
        }

        pre.raw_input_prompt {
            /* nothing needed here. */
        }

        input.raw_input {
            font-family: monospace;
            font-size: inherit;
            color: inherit;
            width: auto;
            /* make sure input baseline aligns with prompt */
            vertical-align: baseline;
            /* padding + margin = 0.5em between prompt and cursor */
            padding: 0em 0.25em;
            margin: 0em 0.25em;
        }

        input.raw_input:focus {
            box-shadow: none;
        }

        p.p-space {
            margin-bottom: 10px;
        }

        div.output_unrecognized {
            padding: 5px;
            font-weight: bold;
            color: red;
        }

        div.output_unrecognized a {
            color: inherit;
            text-decoration: none;
        }

        div.output_unrecognized a:hover {
            color: inherit;
            text-decoration: none;
        }

        .rendered_html {
            color: #000;
            /* any extras will just be numbers: */
        }

        .rendered_html em {
            font-style: italic;
        }

        .rendered_html strong {
            font-weight: bold;
        }

        .rendered_html u {
            text-decoration: underline;
        }

        .rendered_html :link {
            text-decoration: underline;
        }

        .rendered_html :visited {
            text-decoration: underline;
        }

        .rendered_html h1 {
            font-size: 185.7%;
            margin: 1.08em 0 0 0;
            font-weight: bold;
            line-height: 1.0;
        }

        .rendered_html h2 {
            font-size: 157.1%;
            margin: 1.27em 0 0 0;
            font-weight: bold;
            line-height: 1.0;
        }

        .rendered_html h3 {
            font-size: 128.6%;
            margin: 1.55em 0 0 0;
            font-weight: bold;
            line-height: 1.0;
        }

        .rendered_html h4 {
            font-size: 100%;
            margin: 2em 0 0 0;
            font-weight: bold;
            line-height: 1.0;
        }

        .rendered_html h5 {
            font-size: 100%;
            margin: 2em 0 0 0;
            font-weight: bold;
            line-height: 1.0;
            font-style: italic;
        }

        .rendered_html h6 {
            font-size: 100%;
            margin: 2em 0 0 0;
            font-weight: bold;
            line-height: 1.0;
            font-style: italic;
        }

        .rendered_html h1:first-child {
            margin-top: 0.538em;
        }

        .rendered_html h2:first-child {
            margin-top: 0.636em;
        }

        .rendered_html h3:first-child {
            margin-top: 0.777em;
        }

        .rendered_html h4:first-child {
            margin-top: 1em;
        }

        .rendered_html h5:first-child {
            margin-top: 1em;
        }

        .rendered_html h6:first-child {
            margin-top: 1em;
        }

        .rendered_html ul {
            list-style: disc;
            margin: 0em 2em;
            padding-left: 0px;
        }

        .rendered_html ul ul {
            list-style: square;
            margin: 0em 2em;
        }

        .rendered_html ul ul ul {
            list-style: circle;
            margin: 0em 2em;
        }

        .rendered_html ol {
            list-style: decimal;
            margin: 0em 2em;
            padding-left: 0px;
        }

        .rendered_html ol ol {
            list-style: upper-alpha;
            margin: 0em 2em;
        }

        .rendered_html ol ol ol {
            list-style: lower-alpha;
            margin: 0em 2em;
        }

        .rendered_html ol ol ol ol {
            list-style: lower-roman;
            margin: 0em 2em;
        }

        .rendered_html ol ol ol ol ol {
            list-style: decimal;
            margin: 0em 2em;
        }

        .rendered_html * + ul {
            margin-top: 1em;
        }

        .rendered_html * + ol {
            margin-top: 1em;
        }

        .rendered_html hr {
            color: black;
            background-color: black;
        }

        .rendered_html pre {
            margin: 1em 2em;
        }

        .rendered_html pre,
        .rendered_html code {
            border: 0;
            background-color: #fff;
            color: #000;
            font-size: 100%;
            padding: 0px;
        }

        .rendered_html blockquote {
            margin: 1em 2em;
        }

        .rendered_html table {
            margin-left: auto;
            margin-right: auto;
            border: 1px solid black;
            border-collapse: collapse;
        }

        .rendered_html tr,
        .rendered_html th,
        .rendered_html td {
            border: 1px solid black;
            border-collapse: collapse;
            margin: 1em 2em;
        }

        .rendered_html td,
        .rendered_html th {
            text-align: left;
            vertical-align: middle;
            padding: 4px;
        }

        .rendered_html th {
            font-weight: bold;
        }

        .rendered_html * + table {
            margin-top: 1em;
        }

        .rendered_html p {
            text-align: left;
        }

        .rendered_html * + p {
            margin-top: 1em;
        }

        .rendered_html img {
            display: block;
            margin-left: auto;
            margin-right: auto;
        }

        .rendered_html * + img {
            margin-top: 1em;
        }

        .rendered_html img,
        .rendered_html svg {
            max-width: 100%;
            height: auto;
        }

        .rendered_html img.unconfined,
        .rendered_html svg.unconfined {
            max-width: none;
        }

        div.text_cell {
            /* Old browsers */
            display: -webkit-box;
            -webkit-box-orient: horizontal;
            -webkit-box-align: stretch;
            display: -moz-box;
            -moz-box-orient: horizontal;
            -moz-box-align: stretch;
            display: box;
            box-orient: horizontal;
            box-align: stretch;
            /* Modern browsers */
            display: flex;
            flex-direction: row;
            align-items: stretch;
        }

        @media (max-width: 540px) {
            div.text_cell > div.prompt {
                display: none;
            }
        }

        div.text_cell_render {
            /*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
            outline: none;
            resize: none;
            width: inherit;
            border-style: none;
            padding: 0.5em 0.5em 0.5em 0.4em;
            color: #000;
            box-sizing: border-box;
            -moz-box-sizing: border-box;
            -webkit-box-sizing: border-box;
        }

        a.anchor-link:link {
            text-decoration: none;
            padding: 0px 20px;
            visibility: hidden;
        }

        h1:hover .anchor-link,
        h2:hover .anchor-link,
        h3:hover .anchor-link,
        h4:hover .anchor-link,
        h5:hover .anchor-link,
        h6:hover .anchor-link {
            visibility: visible;
        }

        .text_cell.rendered .input_area {
            display: none;
        }

        .text_cell.rendered .rendered_html {
            overflow-x: auto;
            overflow-y: hidden;
        }

        .text_cell.unrendered .text_cell_render {
            display: none;
        }

        .cm-header-1,
        .cm-header-2,
        .cm-header-3,
        .cm-header-4,
        .cm-header-5,
        .cm-header-6 {
            font-weight: bold;
            font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
        }

        .cm-header-1 {
            font-size: 185.7%;
        }

        .cm-header-2 {
            font-size: 157.1%;
        }

        .cm-header-3 {
            font-size: 128.6%;
        }

        .cm-header-4 {
            font-size: 110%;
        }

        .cm-header-5 {
            font-size: 100%;
            font-style: italic;
        }

        .cm-header-6 {
            font-size: 100%;
            font-style: italic;
        }

        /*!
*
* IPython notebook webapp
*
*/
        @media (max-width: 767px) {
            .notebook_app {
                padding-left: 0px;
                padding-right: 0px;
            }
        }

        #ipython-main-app {
            box-sizing: border-box;
            -moz-box-sizing: border-box;
            -webkit-box-sizing: border-box;
            height: 100%;
        }

        div#notebook_panel {
            margin: 0px;
            padding: 0px;
            box-sizing: border-box;
            -moz-box-sizing: border-box;
            -webkit-box-sizing: border-box;
            height: 100%;
        }

        div#notebook {
            font-size: 14px;
            line-height: 20px;
            overflow-y: hidden;
            overflow-x: auto;
            width: 100%;
            /* This spaces the page away from the edge of the notebook area */
            padding-top: 20px;
            margin: 0px;
            outline: none;
            box-sizing: border-box;
            -moz-box-sizing: border-box;
            -webkit-box-sizing: border-box;
            min-height: 100%;
        }

        @media not print {
            #notebook-container {
                padding: 15px;
                background-color: #fff;
                min-height: 0;
                -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
                box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
            }
        }

        @media print {
            #notebook-container {
                width: 100%;
            }
        }

        div.ui-widget-content {
            border: 1px solid #ababab;
            outline: none;
        }

        pre.dialog {
            background-color: #f7f7f7;
            border: 1px solid #ddd;
            border-radius: 2px;
            padding: 0.4em;
            padding-left: 2em;
        }

        p.dialog {
            padding: 0.2em;
        }

        /* Word-wrap output correctly.  This is the CSS3 spelling, though Firefox seems
   to not honor it correctly.  Webkit browsers (Chrome, rekonq, Safari) do.
 */
        pre,
        code,
        kbd,
        samp {
            white-space: pre-wrap;
        }

        #fonttest {
            font-family: monospace;
        }

        p {
            margin-bottom: 0;
        }

        .end_space {
            min-height: 100px;
            transition: height .2s ease;
        }

        .notebook_app > #header {
            -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
            box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
        }

        @media not print {
            .notebook_app {
                background-color: #EEE;
            }
        }

        kbd {
            border-style: solid;
            border-width: 1px;
            box-shadow: none;
            margin: 2px;
            padding-left: 2px;
            padding-right: 2px;
            padding-top: 1px;
            padding-bottom: 1px;
        }

        /* CSS for the cell toolbar */
        .celltoolbar {
            border: thin solid #CFCFCF;
            border-bottom: none;
            background: #EEE;
            border-radius: 2px 2px 0px 0px;
            width: 100%;
            height: 29px;
            padding-right: 4px;
            /* Old browsers */
            display: -webkit-box;
            -webkit-box-orient: horizontal;
            -webkit-box-align: stretch;
            display: -moz-box;
            -moz-box-orient: horizontal;
            -moz-box-align: stretch;
            display: box;
            box-orient: horizontal;
            box-align: stretch;
            /* Modern browsers */
            display: flex;
            flex-direction: row;
            align-items: stretch;
            /* Old browsers */
            -webkit-box-pack: end;
            -moz-box-pack: end;
            box-pack: end;
            /* Modern browsers */
            justify-content: flex-end;
            display: -webkit-flex;
        }

        @media print {
            .celltoolbar {
                display: none;
            }
        }

        .ctb_hideshow {
            display: none;
            vertical-align: bottom;
        }

        /* ctb_show is added to the ctb_hideshow div to show the cell toolbar.
   Cell toolbars are only shown when the ctb_global_show class is also set.
*/
        .ctb_global_show .ctb_show.ctb_hideshow {
            display: block;
        }

        .ctb_global_show .ctb_show + .input_area,
        .ctb_global_show .ctb_show + div.text_cell_input,
        .ctb_global_show .ctb_show ~ div.text_cell_render {
            border-top-right-radius: 0px;
            border-top-left-radius: 0px;
        }

        .ctb_global_show .ctb_show ~ div.text_cell_render {
            border: 1px solid #cfcfcf;
        }

        .celltoolbar {
            font-size: 87%;
            padding-top: 3px;
        }

        .celltoolbar select {
            display: block;
            width: 100%;
            height: 32px;
            padding: 6px 12px;
            font-size: 13px;
            line-height: 1.42857143;
            color: #555555;
            background-color: #fff;
            background-image: none;
            border: 1px solid #ccc;
            border-radius: 2px;
            -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
            box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
            -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
            -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
            transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
            height: 30px;
            padding: 5px 10px;
            font-size: 12px;
            line-height: 1.5;
            border-radius: 1px;
            width: inherit;
            font-size: inherit;
            height: 22px;
            padding: 0px;
            display: inline-block;
        }

        .celltoolbar select:focus {
            border-color: #66afe9;
            outline: 0;
            -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6);
            box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6);
        }

        .celltoolbar select::-moz-placeholder {
            color: #999;
            opacity: 1;
        }

        .celltoolbar select:-ms-input-placeholder {
            color: #999;
        }

        .celltoolbar select::-webkit-input-placeholder {
            color: #999;
        }

        .celltoolbar select::-ms-expand {
            border: 0;
            background-color: transparent;
        }

        .celltoolbar select[disabled],
        .celltoolbar select[readonly],
        fieldset[disabled] .celltoolbar select {
            background-color: #eeeeee;
            opacity: 1;
        }

        .celltoolbar select[disabled],
        fieldset[disabled] .celltoolbar select {
            cursor: not-allowed;
        }

        textarea.celltoolbar select {
            height: auto;
        }

        select.celltoolbar select {
            height: 30px;
            line-height: 30px;
        }

        textarea.celltoolbar select,
        select[multiple].celltoolbar select {
            height: auto;
        }

        .celltoolbar label {
            margin-left: 5px;
            margin-right: 5px;
        }

        .completions {
            position: absolute;
            z-index: 110;
            overflow: hidden;
            border: 1px solid #ababab;
            border-radius: 2px;
            -webkit-box-shadow: 0px 6px 10px -1px #adadad;
            box-shadow: 0px 6px 10px -1px #adadad;
            line-height: 1;
        }

        .completions select {
            background: white;
            outline: none;
            border: none;
            padding: 0px;
            margin: 0px;
            overflow: auto;
            font-family: monospace;
            font-size: 110%;
            color: #000;
            width: auto;
        }

        .completions select option.context {
            color: #286090;
        }

        #kernel_logo_widget {
            float: right !important;
            float: right;
        }

        #kernel_logo_widget .current_kernel_logo {
            display: none;
            margin-top: -1px;
            margin-bottom: -1px;
            width: 32px;
            height: 32px;
        }

        #menubar {
            box-sizing: border-box;
            -moz-box-sizing: border-box;
            -webkit-box-sizing: border-box;
            margin-top: 1px;
        }

        #menubar .navbar {
            border-top: 1px;
            border-radius: 0px 0px 2px 2px;
            margin-bottom: 0px;
        }

        #menubar .navbar-toggle {
            float: left;
            padding-top: 7px;
            padding-bottom: 7px;
            border: none;
        }

        #menubar .navbar-collapse {
            clear: left;
        }

        .nav-wrapper {
            border-bottom: 1px solid #e7e7e7;
        }

        i.menu-icon {
            padding-top: 4px;
        }

        ul#help_menu li a {
            overflow: hidden;
            padding-right: 2.2em;
        }

        ul#help_menu li a i {
            margin-right: -1.2em;
        }

        .dropdown-submenu {
            position: relative;
        }

        .dropdown-submenu > .dropdown-menu {
            top: 0;
            left: 100%;
            margin-top: -6px;
            margin-left: -1px;
        }

        .dropdown-submenu:hover > .dropdown-menu {
            display: block;
        }

        .dropdown-submenu > a:after {
            display: inline-block;
            font: normal normal normal 14px/1 FontAwesome;
            font-size: inherit;
            text-rendering: auto;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            display: block;
            content: "\f0da";
            float: right;
            color: #333333;
            margin-top: 2px;
            margin-right: -10px;
        }

        .dropdown-submenu > a:after.pull-left {
            margin-right: .3em;
        }

        .dropdown-submenu > a:after.pull-right {
            margin-left: .3em;
        }

        .dropdown-submenu:hover > a:after {
            color: #262626;
        }

        .dropdown-submenu.pull-left {
            float: none;
        }

        .dropdown-submenu.pull-left > .dropdown-menu {
            left: -100%;
            margin-left: 10px;
        }

        #notification_area {
            float: right !important;
            float: right;
            z-index: 10;
        }

        .indicator_area {
            float: right !important;
            float: right;
            color: #777;
            margin-left: 5px;
            margin-right: 5px;
            width: 11px;
            z-index: 10;
            text-align: center;
            width: auto;
        }

        #kernel_indicator {
            float: right !important;
            float: right;
            color: #777;
            margin-left: 5px;
            margin-right: 5px;
            width: 11px;
            z-index: 10;
            text-align: center;
            width: auto;
            border-left: 1px solid;
        }

        #kernel_indicator .kernel_indicator_name {
            padding-left: 5px;
            padding-right: 5px;
        }

        #modal_indicator {
            float: right !important;
            float: right;
            color: #777;
            margin-left: 5px;
            margin-right: 5px;
            width: 11px;
            z-index: 10;
            text-align: center;
            width: auto;
        }

        #readonly-indicator {
            float: right !important;
            float: right;
            color: #777;
            margin-left: 5px;
            margin-right: 5px;
            width: 11px;
            z-index: 10;
            text-align: center;
            width: auto;
            margin-top: 2px;
            margin-bottom: 0px;
            margin-left: 0px;
            margin-right: 0px;
            display: none;
        }

        .modal_indicator:before {
            width: 1.28571429em;
            text-align: center;
        }

        .edit_mode .modal_indicator:before {
            display: inline-block;
            font: normal normal normal 14px/1 FontAwesome;
            font-size: inherit;
            text-rendering: auto;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            content: "\f040";
        }

        .edit_mode .modal_indicator:before.pull-left {
            margin-right: .3em;
        }

        .edit_mode .modal_indicator:before.pull-right {
            margin-left: .3em;
        }

        .command_mode .modal_indicator:before {
            display: inline-block;
            font: normal normal normal 14px/1 FontAwesome;
            font-size: inherit;
            text-rendering: auto;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            content: ' ';
        }

        .command_mode .modal_indicator:before.pull-left {
            margin-right: .3em;
        }

        .command_mode .modal_indicator:before.pull-right {
            margin-left: .3em;
        }

        .kernel_idle_icon:before {
            display: inline-block;
            font: normal normal normal 14px/1 FontAwesome;
            font-size: inherit;
            text-rendering: auto;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            content: "\f10c";
        }

        .kernel_idle_icon:before.pull-left {
            margin-right: .3em;
        }

        .kernel_idle_icon:before.pull-right {
            margin-left: .3em;
        }

        .kernel_busy_icon:before {
            display: inline-block;
            font: normal normal normal 14px/1 FontAwesome;
            font-size: inherit;
            text-rendering: auto;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            content: "\f111";
        }

        .kernel_busy_icon:before.pull-left {
            margin-right: .3em;
        }

        .kernel_busy_icon:before.pull-right {
            margin-left: .3em;
        }

        .kernel_dead_icon:before {
            display: inline-block;
            font: normal normal normal 14px/1 FontAwesome;
            font-size: inherit;
            text-rendering: auto;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            content: "\f1e2";
        }

        .kernel_dead_icon:before.pull-left {
            margin-right: .3em;
        }

        .kernel_dead_icon:before.pull-right {
            margin-left: .3em;
        }

        .kernel_disconnected_icon:before {
            display: inline-block;
            font: normal normal normal 14px/1 FontAwesome;
            font-size: inherit;
            text-rendering: auto;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            content: "\f127";
        }

        .kernel_disconnected_icon:before.pull-left {
            margin-right: .3em;
        }

        .kernel_disconnected_icon:before.pull-right {
            margin-left: .3em;
        }

        .notification_widget {
            color: #777;
            z-index: 10;
            background: rgba(240, 240, 240, 0.5);
            margin-right: 4px;
            color: #333;
            background-color: #fff;
            border-color: #ccc;
        }

        .notification_widget:focus,
        .notification_widget.focus {
            color: #333;
            background-color: #e6e6e6;
            border-color: #8c8c8c;
        }

        .notification_widget:hover {
            color: #333;
            background-color: #e6e6e6;
            border-color: #adadad;
        }

        .notification_widget:active,
        .notification_widget.active,
        .open > .dropdown-toggle.notification_widget {
            color: #333;
            background-color: #e6e6e6;
            border-color: #adadad;
        }

        .notification_widget:active:hover,
        .notification_widget.active:hover,
        .open > .dropdown-toggle.notification_widget:hover,
        .notification_widget:active:focus,
        .notification_widget.active:focus,
        .open > .dropdown-toggle.notification_widget:focus,
        .notification_widget:active.focus,
        .notification_widget.active.focus,
        .open > .dropdown-toggle.notification_widget.focus {
            color: #333;
            background-color: #d4d4d4;
            border-color: #8c8c8c;
        }

        .notification_widget:active,
        .notification_widget.active,
        .open > .dropdown-toggle.notification_widget {
            background-image: none;
        }

        .notification_widget.disabled:hover,
        .notification_widget[disabled]:hover,
        fieldset[disabled] .notification_widget:hover,
        .notification_widget.disabled:focus,
        .notification_widget[disabled]:focus,
        fieldset[disabled] .notification_widget:focus,
        .notification_widget.disabled.focus,
        .notification_widget[disabled].focus,
        fieldset[disabled] .notification_widget.focus {
            background-color: #fff;
            border-color: #ccc;
        }

        .notification_widget .badge {
            color: #fff;
            background-color: #333;
        }

        .notification_widget.warning {
            color: #fff;
            background-color: #f0ad4e;
            border-color: #eea236;
        }

        .notification_widget.warning:focus,
        .notification_widget.warning.focus {
            color: #fff;
            background-color: #ec971f;
            border-color: #985f0d;
        }

        .notification_widget.warning:hover {
            color: #fff;
            background-color: #ec971f;
            border-color: #d58512;
        }

        .notification_widget.warning:active,
        .notification_widget.warning.active,
        .open > .dropdown-toggle.notification_widget.warning {
            color: #fff;
            background-color: #ec971f;
            border-color: #d58512;
        }

        .notification_widget.warning:active:hover,
        .notification_widget.warning.active:hover,
        .open > .dropdown-toggle.notification_widget.warning:hover,
        .notification_widget.warning:active:focus,
        .notification_widget.warning.active:focus,
        .open > .dropdown-toggle.notification_widget.warning:focus,
        .notification_widget.warning:active.focus,
        .notification_widget.warning.active.focus,
        .open > .dropdown-toggle.notification_widget.warning.focus {
            color: #fff;
            background-color: #d58512;
            border-color: #985f0d;
        }

        .notification_widget.warning:active,
        .notification_widget.warning.active,
        .open > .dropdown-toggle.notification_widget.warning {
            background-image: none;
        }

        .notification_widget.warning.disabled:hover,
        .notification_widget.warning[disabled]:hover,
        fieldset[disabled] .notification_widget.warning:hover,
        .notification_widget.warning.disabled:focus,
        .notification_widget.warning[disabled]:focus,
        fieldset[disabled] .notification_widget.warning:focus,
        .notification_widget.warning.disabled.focus,
        .notification_widget.warning[disabled].focus,
        fieldset[disabled] .notification_widget.warning.focus {
            background-color: #f0ad4e;
            border-color: #eea236;
        }

        .notification_widget.warning .badge {
            color: #f0ad4e;
            background-color: #fff;
        }

        .notification_widget.success {
            color: #fff;
            background-color: #5cb85c;
            border-color: #4cae4c;
        }

        .notification_widget.success:focus,
        .notification_widget.success.focus {
            color: #fff;
            background-color: #449d44;
            border-color: #255625;
        }

        .notification_widget.success:hover {
            color: #fff;
            background-color: #449d44;
            border-color: #398439;
        }

        .notification_widget.success:active,
        .notification_widget.success.active,
        .open > .dropdown-toggle.notification_widget.success {
            color: #fff;
            background-color: #449d44;
            border-color: #398439;
        }

        .notification_widget.success:active:hover,
        .notification_widget.success.active:hover,
        .open > .dropdown-toggle.notification_widget.success:hover,
        .notification_widget.success:active:focus,
        .notification_widget.success.active:focus,
        .open > .dropdown-toggle.notification_widget.success:focus,
        .notification_widget.success:active.focus,
        .notification_widget.success.active.focus,
        .open > .dropdown-toggle.notification_widget.success.focus {
            color: #fff;
            background-color: #398439;
            border-color: #255625;
        }

        .notification_widget.success:active,
        .notification_widget.success.active,
        .open > .dropdown-toggle.notification_widget.success {
            background-image: none;
        }

        .notification_widget.success.disabled:hover,
        .notification_widget.success[disabled]:hover,
        fieldset[disabled] .notification_widget.success:hover,
        .notification_widget.success.disabled:focus,
        .notification_widget.success[disabled]:focus,
        fieldset[disabled] .notification_widget.success:focus,
        .notification_widget.success.disabled.focus,
        .notification_widget.success[disabled].focus,
        fieldset[disabled] .notification_widget.success.focus {
            background-color: #5cb85c;
            border-color: #4cae4c;
        }

        .notification_widget.success .badge {
            color: #5cb85c;
            background-color: #fff;
        }

        .notification_widget.info {
            color: #fff;
            background-color: #5bc0de;
            border-color: #46b8da;
        }

        .notification_widget.info:focus,
        .notification_widget.info.focus {
            color: #fff;
            background-color: #31b0d5;
            border-color: #1b6d85;
        }

        .notification_widget.info:hover {
            color: #fff;
            background-color: #31b0d5;
            border-color: #269abc;
        }

        .notification_widget.info:active,
        .notification_widget.info.active,
        .open > .dropdown-toggle.notification_widget.info {
            color: #fff;
            background-color: #31b0d5;
            border-color: #269abc;
        }

        .notification_widget.info:active:hover,
        .notification_widget.info.active:hover,
        .open > .dropdown-toggle.notification_widget.info:hover,
        .notification_widget.info:active:focus,
        .notification_widget.info.active:focus,
        .open > .dropdown-toggle.notification_widget.info:focus,
        .notification_widget.info:active.focus,
        .notification_widget.info.active.focus,
        .open > .dropdown-toggle.notification_widget.info.focus {
            color: #fff;
            background-color: #269abc;
            border-color: #1b6d85;
        }

        .notification_widget.info:active,
        .notification_widget.info.active,
        .open > .dropdown-toggle.notification_widget.info {
            background-image: none;
        }

        .notification_widget.info.disabled:hover,
        .notification_widget.info[disabled]:hover,
        fieldset[disabled] .notification_widget.info:hover,
        .notification_widget.info.disabled:focus,
        .notification_widget.info[disabled]:focus,
        fieldset[disabled] .notification_widget.info:focus,
        .notification_widget.info.disabled.focus,
        .notification_widget.info[disabled].focus,
        fieldset[disabled] .notification_widget.info.focus {
            background-color: #5bc0de;
            border-color: #46b8da;
        }

        .notification_widget.info .badge {
            color: #5bc0de;
            background-color: #fff;
        }

        .notification_widget.danger {
            color: #fff;
            background-color: #d9534f;
            border-color: #d43f3a;
        }

        .notification_widget.danger:focus,
        .notification_widget.danger.focus {
            color: #fff;
            background-color: #c9302c;
            border-color: #761c19;
        }

        .notification_widget.danger:hover {
            color: #fff;
            background-color: #c9302c;
            border-color: #ac2925;
        }

        .notification_widget.danger:active,
        .notification_widget.danger.active,
        .open > .dropdown-toggle.notification_widget.danger {
            color: #fff;
            background-color: #c9302c;
            border-color: #ac2925;
        }

        .notification_widget.danger:active:hover,
        .notification_widget.danger.active:hover,
        .open > .dropdown-toggle.notification_widget.danger:hover,
        .notification_widget.danger:active:focus,
        .notification_widget.danger.active:focus,
        .open > .dropdown-toggle.notification_widget.danger:focus,
        .notification_widget.danger:active.focus,
        .notification_widget.danger.active.focus,
        .open > .dropdown-toggle.notification_widget.danger.focus {
            color: #fff;
            background-color: #ac2925;
            border-color: #761c19;
        }

        .notification_widget.danger:active,
        .notification_widget.danger.active,
        .open > .dropdown-toggle.notification_widget.danger {
            background-image: none;
        }

        .notification_widget.danger.disabled:hover,
        .notification_widget.danger[disabled]:hover,
        fieldset[disabled] .notification_widget.danger:hover,
        .notification_widget.danger.disabled:focus,
        .notification_widget.danger[disabled]:focus,
        fieldset[disabled] .notification_widget.danger:focus,
        .notification_widget.danger.disabled.focus,
        .notification_widget.danger[disabled].focus,
        fieldset[disabled] .notification_widget.danger.focus {
            background-color: #d9534f;
            border-color: #d43f3a;
        }

        .notification_widget.danger .badge {
            color: #d9534f;
            background-color: #fff;
        }

        div#pager {
            background-color: #fff;
            font-size: 14px;
            line-height: 20px;
            overflow: hidden;
            display: none;
            position: fixed;
            bottom: 0px;
            width: 100%;
            max-height: 50%;
            padding-top: 8px;
            -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
            box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
            /* Display over codemirror */
            z-index: 100;
            /* Hack which prevents jquery ui resizable from changing top. */
            top: auto !important;
        }

        div#pager pre {
            line-height: 1.21429em;
            color: #000;
            background-color: #f7f7f7;
            padding: 0.4em;
        }

        div#pager #pager-button-area {
            position: absolute;
            top: 8px;
            right: 20px;
        }

        div#pager #pager-contents {
            position: relative;
            overflow: auto;
            width: 100%;
            height: 100%;
        }

        div#pager #pager-contents #pager-container {
            position: relative;
            padding: 15px 0px;
            box-sizing: border-box;
            -moz-box-sizing: border-box;
            -webkit-box-sizing: border-box;
        }

        div#pager .ui-resizable-handle {
            top: 0px;
            height: 8px;
            background: #f7f7f7;
            border-top: 1px solid #cfcfcf;
            border-bottom: 1px solid #cfcfcf;
            /* This injects handle bars (a short, wide = symbol) for
        the resize handle. */
        }

        div#pager .ui-resizable-handle::after {
            content: '';
            top: 2px;
            left: 50%;
            height: 3px;
            width: 30px;
            margin-left: -15px;
            position: absolute;
            border-top: 1px solid #cfcfcf;
        }

        .quickhelp {
            /* Old browsers */
            display: -webkit-box;
            -webkit-box-orient: horizontal;
            -webkit-box-align: stretch;
            display: -moz-box;
            -moz-box-orient: horizontal;
            -moz-box-align: stretch;
            display: box;
            box-orient: horizontal;
            box-align: stretch;
            /* Modern browsers */
            display: flex;
            flex-direction: row;
            align-items: stretch;
            line-height: 1.8em;
        }

        .shortcut_key {
            display: inline-block;
            width: 20ex;
            text-align: right;
            font-family: monospace;
        }

        .shortcut_descr {
            display: inline-block;
            /* Old browsers */
            -webkit-box-flex: 1;
            -moz-box-flex: 1;
            box-flex: 1;
            /* Modern browsers */
            flex: 1;
        }

        span.save_widget {
            margin-top: 6px;
        }

        span.save_widget span.filename {
            height: 1em;
            line-height: 1em;
            padding: 3px;
            margin-left: 16px;
            border: none;
            font-size: 146.5%;
            border-radius: 2px;
        }

        span.save_widget span.filename:hover {
            background-color: #e6e6e6;
        }

        span.checkpoint_status,
        span.autosave_status {
            font-size: small;
        }

        @media (max-width: 767px) {
            span.save_widget {
                font-size: small;
            }

            span.checkpoint_status,
            span.autosave_status {
                display: none;
            }
        }

        @media (min-width: 768px) and (max-width: 991px) {
            span.checkpoint_status {
                display: none;
            }

            span.autosave_status {
                font-size: x-small;
            }
        }

        .toolbar {
            padding: 0px;
            margin-left: -5px;
            margin-top: 2px;
            margin-bottom: 5px;
            box-sizing: border-box;
            -moz-box-sizing: border-box;
            -webkit-box-sizing: border-box;
        }

        .toolbar select,
        .toolbar label {
            width: auto;
            vertical-align: middle;
            margin-right: 2px;
            margin-bottom: 0px;
            display: inline;
            font-size: 92%;
            margin-left: 0.3em;
            margin-right: 0.3em;
            padding: 0px;
            padding-top: 3px;
        }

        .toolbar .btn {
            padding: 2px 8px;
        }

        .toolbar .btn-group {
            margin-top: 0px;
            margin-left: 5px;
        }

        #maintoolbar {
            margin-bottom: -3px;
            margin-top: -8px;
            border: 0px;
            min-height: 27px;
            margin-left: 0px;
            padding-top: 11px;
            padding-bottom: 3px;
        }

        #maintoolbar .navbar-text {
            float: none;
            vertical-align: middle;
            text-align: right;
            margin-left: 5px;
            margin-right: 0px;
            margin-top: 0px;
        }

        .select-xs {
            height: 24px;
        }

        .pulse,
        .dropdown-menu > li > a.pulse,
        li.pulse > a.dropdown-toggle,
        li.pulse.open > a.dropdown-toggle {
            background-color: #F37626;
            color: white;
        }

        /**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
        /** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot
 * of chance of beeing generated from the ../less/[samename].less file, you can
 * try to get back the less file by reverting somme commit in history
 **/
        /*
 * We'll try to get something pretty, so we
 * have some strange css to have the scroll bar on
 * the left with fix button on the top right of the tooltip
 */
        @-moz-keyframes fadeOut {
            from {
                opacity: 1;
            }
            to {
                opacity: 0;
            }
        }

        @-webkit-keyframes fadeOut {
            from {
                opacity: 1;
            }
            to {
                opacity: 0;
            }
        }

        @-moz-keyframes fadeIn {
            from {
                opacity: 0;
            }
            to {
                opacity: 1;
            }
        }

        @-webkit-keyframes fadeIn {
            from {
                opacity: 0;
            }
            to {
                opacity: 1;
            }
        }

        /*properties of tooltip after "expand"*/
        .bigtooltip {
            overflow: auto;
            height: 200px;
            -webkit-transition-property: height;
            -webkit-transition-duration: 500ms;
            -moz-transition-property: height;
            -moz-transition-duration: 500ms;
            transition-property: height;
            transition-duration: 500ms;
        }

        /*properties of tooltip before "expand"*/
        .smalltooltip {
            -webkit-transition-property: height;
            -webkit-transition-duration: 500ms;
            -moz-transition-property: height;
            -moz-transition-duration: 500ms;
            transition-property: height;
            transition-duration: 500ms;
            text-overflow: ellipsis;
            overflow: hidden;
            height: 80px;
        }

        .tooltipbuttons {
            position: absolute;
            padding-right: 15px;
            top: 0px;
            right: 0px;
        }

        .tooltiptext {
            /*avoid the button to overlap on some docstring*/
            padding-right: 30px;
        }

        .ipython_tooltip {
            max-width: 700px;
            /*fade-in animation when inserted*/
            -webkit-animation: fadeOut 400ms;
            -moz-animation: fadeOut 400ms;
            animation: fadeOut 400ms;
            -webkit-animation: fadeIn 400ms;
            -moz-animation: fadeIn 400ms;
            animation: fadeIn 400ms;
            vertical-align: middle;
            background-color: #f7f7f7;
            overflow: visible;
            border: #ababab 1px solid;
            outline: none;
            padding: 3px;
            margin: 0px;
            padding-left: 7px;
            font-family: monospace;
            min-height: 50px;
            -moz-box-shadow: 0px 6px 10px -1px #adadad;
            -webkit-box-shadow: 0px 6px 10px -1px #adadad;
            box-shadow: 0px 6px 10px -1px #adadad;
            border-radius: 2px;
            position: absolute;
            z-index: 1000;
        }

        .ipython_tooltip a {
            float: right;
        }

        .ipython_tooltip .tooltiptext pre {
            border: 0;
            border-radius: 0;
            font-size: 100%;
            background-color: #f7f7f7;
        }

        .pretooltiparrow {
            left: 0px;
            margin: 0px;
            top: -16px;
            width: 40px;
            height: 16px;
            overflow: hidden;
            position: absolute;
        }

        .pretooltiparrow:before {
            background-color: #f7f7f7;
            border: 1px #ababab solid;
            z-index: 11;
            content: "";
            position: absolute;
            left: 15px;
            top: 10px;
            width: 25px;
            height: 25px;
            -webkit-transform: rotate(45deg);
            -moz-transform: rotate(45deg);
            -ms-transform: rotate(45deg);
            -o-transform: rotate(45deg);
        }

        ul.typeahead-list i {
            margin-left: -10px;
            width: 18px;
        }

        ul.typeahead-list {
            max-height: 80vh;
            overflow: auto;
        }

        ul.typeahead-list > li > a {
            /** Firefox bug **/
            /* see https://github.com/jupyter/notebook/issues/559 */
            white-space: normal;
        }

        .cmd-palette .modal-body {
            padding: 7px;
        }

        .cmd-palette form {
            background: white;
        }

        .cmd-palette input {
            outline: none;
        }

        .no-shortcut {
            display: none;
        }

        .command-shortcut:before {
            content: "(command)";
            padding-right: 3px;
            color: #777777;
        }

        .edit-shortcut:before {
            content: "(edit)";
            padding-right: 3px;
            color: #777777;
        }

        #find-and-replace #replace-preview .match,
        #find-and-replace #replace-preview .insert {
            background-color: #BBDEFB;
            border-color: #90CAF9;
            border-style: solid;
            border-width: 1px;
            border-radius: 0px;
        }

        #find-and-replace #replace-preview .replace .match {
            background-color: #FFCDD2;
            border-color: #EF9A9A;
            border-radius: 0px;
        }

        #find-and-replace #replace-preview .replace .insert {
            background-color: #C8E6C9;
            border-color: #A5D6A7;
            border-radius: 0px;
        }

        #find-and-replace #replace-preview {
            max-height: 60vh;
            overflow: auto;
        }

        #find-and-replace #replace-preview pre {
            padding: 5px 10px;
        }

        .terminal-app {
            background: #EEE;
        }

        .terminal-app #header {
            background: #fff;
            -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
            box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
        }

        .terminal-app .terminal {
            float: left;
            font-family: monospace;
            color: white;
            background: black;
            padding: 0.4em;
            border-radius: 2px;
            -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
            box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
        }

        .terminal-app .terminal,
        .terminal-app .terminal dummy-screen {
            line-height: 1em;
            font-size: 14px;
        }

        .terminal-app .terminal-cursor {
            color: black;
            background: white;
        }

        .terminal-app #terminado-container {
            margin-top: 20px;
        }

        /*# sourceMappingURL=style.min.css.map */
    </style>
    <style type="text/css">
        .highlight .hll {
            background-color: #ffffcc
        }

        .highlight {
            background: #f8f8f8;
        }

        .highlight .c {
            color: #408080;
            font-style: italic
        }

        /* Comment */
        .highlight .err {
            border: 1px solid #FF0000
        }

        /* Error */
        .highlight .k {
            color: #008000;
            font-weight: bold
        }

        /* Keyword */
        .highlight .o {
            color: #666666
        }

        /* Operator */
        .highlight .ch {
            color: #408080;
            font-style: italic
        }

        /* Comment.Hashbang */
        .highlight .cm {
            color: #408080;
            font-style: italic
        }

        /* Comment.Multiline */
        .highlight .cp {
            color: #BC7A00
        }

        /* Comment.Preproc */
        .highlight .cpf {
            color: #408080;
            font-style: italic
        }

        /* Comment.PreprocFile */
        .highlight .c1 {
            color: #408080;
            font-style: italic
        }

        /* Comment.Single */
        .highlight .cs {
            color: #408080;
            font-style: italic
        }

        /* Comment.Special */
        .highlight .gd {
            color: #A00000
        }

        /* Generic.Deleted */
        .highlight .ge {
            font-style: italic
        }

        /* Generic.Emph */
        .highlight .gr {
            color: #FF0000
        }

        /* Generic.Error */
        .highlight .gh {
            color: #000080;
            font-weight: bold
        }

        /* Generic.Heading */
        .highlight .gi {
            color: #00A000
        }

        /* Generic.Inserted */
        .highlight .go {
            color: #888888
        }

        /* Generic.Output */
        .highlight .gp {
            color: #000080;
            font-weight: bold
        }

        /* Generic.Prompt */
        .highlight .gs {
            font-weight: bold
        }

        /* Generic.Strong */
        .highlight .gu {
            color: #800080;
            font-weight: bold
        }

        /* Generic.Subheading */
        .highlight .gt {
            color: #0044DD
        }

        /* Generic.Traceback */
        .highlight .kc {
            color: #008000;
            font-weight: bold
        }

        /* Keyword.Constant */
        .highlight .kd {
            color: #008000;
            font-weight: bold
        }

        /* Keyword.Declaration */
        .highlight .kn {
            color: #008000;
            font-weight: bold
        }

        /* Keyword.Namespace */
        .highlight .kp {
            color: #008000
        }

        /* Keyword.Pseudo */
        .highlight .kr {
            color: #008000;
            font-weight: bold
        }

        /* Keyword.Reserved */
        .highlight .kt {
            color: #B00040
        }

        /* Keyword.Type */
        .highlight .m {
            color: #666666
        }

        /* Literal.Number */
        .highlight .s {
            color: #BA2121
        }

        /* Literal.String */
        .highlight .na {
            color: #7D9029
        }

        /* Name.Attribute */
        .highlight .nb {
            color: #008000
        }

        /* Name.Builtin */
        .highlight .nc {
            color: #0000FF;
            font-weight: bold
        }

        /* Name.Class */
        .highlight .no {
            color: #880000
        }

        /* Name.Constant */
        .highlight .nd {
            color: #AA22FF
        }

        /* Name.Decorator */
        .highlight .ni {
            color: #999999;
            font-weight: bold
        }

        /* Name.Entity */
        .highlight .ne {
            color: #D2413A;
            font-weight: bold
        }

        /* Name.Exception */
        .highlight .nf {
            color: #0000FF
        }

        /* Name.Function */
        .highlight .nl {
            color: #A0A000
        }

        /* Name.Label */
        .highlight .nn {
            color: #0000FF;
            font-weight: bold
        }

        /* Name.Namespace */
        .highlight .nt {
            color: #008000;
            font-weight: bold
        }

        /* Name.Tag */
        .highlight .nv {
            color: #19177C
        }

        /* Name.Variable */
        .highlight .ow {
            color: #AA22FF;
            font-weight: bold
        }

        /* Operator.Word */
        .highlight .w {
            color: #bbbbbb
        }

        /* Text.Whitespace */
        .highlight .mb {
            color: #666666
        }

        /* Literal.Number.Bin */
        .highlight .mf {
            color: #666666
        }

        /* Literal.Number.Float */
        .highlight .mh {
            color: #666666
        }

        /* Literal.Number.Hex */
        .highlight .mi {
            color: #666666
        }

        /* Literal.Number.Integer */
        .highlight .mo {
            color: #666666
        }

        /* Literal.Number.Oct */
        .highlight .sb {
            color: #BA2121
        }

        /* Literal.String.Backtick */
        .highlight .sc {
            color: #BA2121
        }

        /* Literal.String.Char */
        .highlight .sd {
            color: #BA2121;
            font-style: italic
        }

        /* Literal.String.Doc */
        .highlight .s2 {
            color: #BA2121
        }

        /* Literal.String.Double */
        .highlight .se {
            color: #BB6622;
            font-weight: bold
        }

        /* Literal.String.Escape */
        .highlight .sh {
            color: #BA2121
        }

        /* Literal.String.Heredoc */
        .highlight .si {
            color: #BB6688;
            font-weight: bold
        }

        /* Literal.String.Interpol */
        .highlight .sx {
            color: #008000
        }

        /* Literal.String.Other */
        .highlight .sr {
            color: #BB6688
        }

        /* Literal.String.Regex */
        .highlight .s1 {
            color: #BA2121
        }

        /* Literal.String.Single */
        .highlight .ss {
            color: #19177C
        }

        /* Literal.String.Symbol */
        .highlight .bp {
            color: #008000
        }

        /* Name.Builtin.Pseudo */
        .highlight .vc {
            color: #19177C
        }

        /* Name.Variable.Class */
        .highlight .vg {
            color: #19177C
        }

        /* Name.Variable.Global */
        .highlight .vi {
            color: #19177C
        }

        /* Name.Variable.Instance */
        .highlight .il {
            color: #666666
        }

        /* Literal.Number.Integer.Long */
    </style>
    <style type="text/css">

        /* Temporary definitions which will become obsolete with Notebook release 5.0 */
        .ansi-black-fg {
            color: #3E424D;
        }

        .ansi-black-bg {
            background-color: #3E424D;
        }

        .ansi-black-intense-fg {
            color: #282C36;
        }

        .ansi-black-intense-bg {
            background-color: #282C36;
        }

        .ansi-red-fg {
            color: #E75C58;
        }

        .ansi-red-bg {
            background-color: #E75C58;
        }

        .ansi-red-intense-fg {
            color: #B22B31;
        }

        .ansi-red-intense-bg {
            background-color: #B22B31;
        }

        .ansi-green-fg {
            color: #00A250;
        }

        .ansi-green-bg {
            background-color: #00A250;
        }

        .ansi-green-intense-fg {
            color: #007427;
        }

        .ansi-green-intense-bg {
            background-color: #007427;
        }

        .ansi-yellow-fg {
            color: #DDB62B;
        }

        .ansi-yellow-bg {
            background-color: #DDB62B;
        }

        .ansi-yellow-intense-fg {
            color: #B27D12;
        }

        .ansi-yellow-intense-bg {
            background-color: #B27D12;
        }

        .ansi-blue-fg {
            color: #208FFB;
        }

        .ansi-blue-bg {
            background-color: #208FFB;
        }

        .ansi-blue-intense-fg {
            color: #0065CA;
        }

        .ansi-blue-intense-bg {
            background-color: #0065CA;
        }

        .ansi-magenta-fg {
            color: #D160C4;
        }

        .ansi-magenta-bg {
            background-color: #D160C4;
        }

        .ansi-magenta-intense-fg {
            color: #A03196;
        }

        .ansi-magenta-intense-bg {
            background-color: #A03196;
        }

        .ansi-cyan-fg {
            color: #60C6C8;
        }

        .ansi-cyan-bg {
            background-color: #60C6C8;
        }

        .ansi-cyan-intense-fg {
            color: #258F8F;
        }

        .ansi-cyan-intense-bg {
            background-color: #258F8F;
        }

        .ansi-white-fg {
            color: #C5C1B4;
        }

        .ansi-white-bg {
            background-color: #C5C1B4;
        }

        .ansi-white-intense-fg {
            color: #A1A6B2;
        }

        .ansi-white-intense-bg {
            background-color: #A1A6B2;
        }

        .ansi-bold {
            font-weight: bold;
        }

    </style>


    <style type="text/css">
        /* Overrides of notebook CSS for static HTML export */
        body {
            overflow: visible;
            padding: 8px;
        }

        div#notebook {
            overflow: visible;
            border-top: none;
        }

        @media print {
            div.cell {
                display: block;
                page-break-inside: avoid;
            }

            div.output_wrapper {
                display: block;
                page-break-inside: avoid;
            }

            div.output {
                display: block;
                page-break-inside: avoid;
            }
        }
    </style>

    <!-- Custom stylesheet, it must be in the same directory as the html file -->
    <link rel="stylesheet" href="custom.css">

    <!-- Loading mathjax macro -->
    <!-- Load mathjax -->
    <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script>
    <!-- MathJax configuration -->
    <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
        tex2jax: {
            inlineMath: [ ['$','$'], ["\\(","\\)"] ],
            displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
            processEscapes: true,
            processEnvironments: true
        },
        // Center justify equations in code and markdown cells. Elsewhere
        // we use CSS to left justify single line equations in code cells.
        displayAlign: 'center',
        "HTML-CSS": {
            styles: {'.MathJax_Display': {"margin": 0}},
            linebreaks: { automatic: true }
        }
    });

    </script>
    <!-- End of mathjax configuration --></head>
<body>
<div tabindex="-1" id="notebook" class="border-box-sizing">
    <div class="container" id="notebook-container">

        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <h1 id="&#25151;&#20215;&#39044;&#27979;&#26696;&#20363;&#65288;&#36827;&#38454;&#29256;&#65289;">
                        &#25151;&#20215;&#39044;&#27979;&#26696;&#20363;&#65288;&#36827;&#38454;&#29256;&#65289;<a
                            class="anchor-link"
                            href="#&#25151;&#20215;&#39044;&#27979;&#26696;&#20363;&#65288;&#36827;&#38454;&#29256;&#65289;">&#182;</a>
                    </h1>
                    <p>这是进阶版的notebook。主要是为了比较几种模型框架。所以前面的特征工程部分内容，我也并没有做任何改动，重点都在后面的模型建造section</p>
                    <h2 id="Step-1:-&#26816;&#35270;&#28304;&#25968;&#25454;&#38598;">Step 1: &#26816;&#35270;&#28304;&#25968;&#25454;&#38598;<a
                            class="anchor-link"
                            href="#Step-1:-&#26816;&#35270;&#28304;&#25968;&#25454;&#38598;">&#182;</a></h2>
                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[71]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span
                                class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <h4 id="&#35835;&#20837;&#25968;&#25454;">&#35835;&#20837;&#25968;&#25454;<a class="anchor-link"
                                                                                                 href="#&#35835;&#20837;&#25968;&#25454;">&#182;</a>
                    </h4>
                    <ul>
                        <li><p>一般来说源数据的index那一栏没什么用，我们可以用来作为我们pandas dataframe的index。这样之后要是检索起来也省事儿。</p>
                        </li>
                        <li><p>有人的地方就有鄙视链。跟知乎一样。Kaggle的也是个处处呵呵的危险地带。Kaggle上默认把数据放在<em>input</em>文件夹下。所以我们没事儿写个教程什么的，也可以依据这个convention来，显得自己很有逼格。。
                        </p>
                        </li>
                    </ul>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[72]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">train_df</span> <span
                                class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span
                                class="p">(</span><span class="s1">&#39;../input/train.csv&#39;</span><span
                                class="p">,</span> <span class="n">index_col</span><span class="o">=</span><span
                                class="mi">0</span><span class="p">)</span>
<span class="n">test_df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span
                                    class="n">read_csv</span><span class="p">(</span><span class="s1">&#39;../input/test.csv&#39;</span><span
                                    class="p">,</span> <span class="n">index_col</span><span class="o">=</span><span
                                    class="mi">0</span><span class="p">)</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <h4 id="&#26816;&#35270;&#28304;&#25968;&#25454;">&#26816;&#35270;&#28304;&#25968;&#25454;<a
                            class="anchor-link" href="#&#26816;&#35270;&#28304;&#25968;&#25454;">&#182;</a></h4>
                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[73]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">train_df</span><span
                                class="o">.</span><span class="n">head</span><span class="p">()</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

            <div class="output_wrapper">
                <div class="output">


                    <div class="output_area">
                        <div class="prompt output_prompt">Out[73]:</div>

                        <div class="output_html rendered_html output_subarea output_execute_result">
                            <div>
                                <table border="1" class="dataframe">
                                    <thead>
                                    <tr style="text-align: right;">
                                        <th></th>
                                        <th>MSSubClass</th>
                                        <th>MSZoning</th>
                                        <th>LotFrontage</th>
                                        <th>LotArea</th>
                                        <th>Street</th>
                                        <th>Alley</th>
                                        <th>LotShape</th>
                                        <th>LandContour</th>
                                        <th>Utilities</th>
                                        <th>LotConfig</th>
                                        <th>...</th>
                                        <th>PoolArea</th>
                                        <th>PoolQC</th>
                                        <th>Fence</th>
                                        <th>MiscFeature</th>
                                        <th>MiscVal</th>
                                        <th>MoSold</th>
                                        <th>YrSold</th>
                                        <th>SaleType</th>
                                        <th>SaleCondition</th>
                                        <th>SalePrice</th>
                                    </tr>
                                    <tr>
                                        <th>Id</th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                    </tr>
                                    </thead>
                                    <tbody>
                                    <tr>
                                        <th>1</th>
                                        <td>60</td>
                                        <td>RL</td>
                                        <td>65.0</td>
                                        <td>8450</td>
                                        <td>Pave</td>
                                        <td>NaN</td>
                                        <td>Reg</td>
                                        <td>Lvl</td>
                                        <td>AllPub</td>
                                        <td>Inside</td>
                                        <td>...</td>
                                        <td>0</td>
                                        <td>NaN</td>
                                        <td>NaN</td>
                                        <td>NaN</td>
                                        <td>0</td>
                                        <td>2</td>
                                        <td>2008</td>
                                        <td>WD</td>
                                        <td>Normal</td>
                                        <td>208500</td>
                                    </tr>
                                    <tr>
                                        <th>2</th>
                                        <td>20</td>
                                        <td>RL</td>
                                        <td>80.0</td>
                                        <td>9600</td>
                                        <td>Pave</td>
                                        <td>NaN</td>
                                        <td>Reg</td>
                                        <td>Lvl</td>
                                        <td>AllPub</td>
                                        <td>FR2</td>
                                        <td>...</td>
                                        <td>0</td>
                                        <td>NaN</td>
                                        <td>NaN</td>
                                        <td>NaN</td>
                                        <td>0</td>
                                        <td>5</td>
                                        <td>2007</td>
                                        <td>WD</td>
                                        <td>Normal</td>
                                        <td>181500</td>
                                    </tr>
                                    <tr>
                                        <th>3</th>
                                        <td>60</td>
                                        <td>RL</td>
                                        <td>68.0</td>
                                        <td>11250</td>
                                        <td>Pave</td>
                                        <td>NaN</td>
                                        <td>IR1</td>
                                        <td>Lvl</td>
                                        <td>AllPub</td>
                                        <td>Inside</td>
                                        <td>...</td>
                                        <td>0</td>
                                        <td>NaN</td>
                                        <td>NaN</td>
                                        <td>NaN</td>
                                        <td>0</td>
                                        <td>9</td>
                                        <td>2008</td>
                                        <td>WD</td>
                                        <td>Normal</td>
                                        <td>223500</td>
                                    </tr>
                                    <tr>
                                        <th>4</th>
                                        <td>70</td>
                                        <td>RL</td>
                                        <td>60.0</td>
                                        <td>9550</td>
                                        <td>Pave</td>
                                        <td>NaN</td>
                                        <td>IR1</td>
                                        <td>Lvl</td>
                                        <td>AllPub</td>
                                        <td>Corner</td>
                                        <td>...</td>
                                        <td>0</td>
                                        <td>NaN</td>
                                        <td>NaN</td>
                                        <td>NaN</td>
                                        <td>0</td>
                                        <td>2</td>
                                        <td>2006</td>
                                        <td>WD</td>
                                        <td>Abnorml</td>
                                        <td>140000</td>
                                    </tr>
                                    <tr>
                                        <th>5</th>
                                        <td>60</td>
                                        <td>RL</td>
                                        <td>84.0</td>
                                        <td>14260</td>
                                        <td>Pave</td>
                                        <td>NaN</td>
                                        <td>IR1</td>
                                        <td>Lvl</td>
                                        <td>AllPub</td>
                                        <td>FR2</td>
                                        <td>...</td>
                                        <td>0</td>
                                        <td>NaN</td>
                                        <td>NaN</td>
                                        <td>NaN</td>
                                        <td>0</td>
                                        <td>12</td>
                                        <td>2008</td>
                                        <td>WD</td>
                                        <td>Normal</td>
                                        <td>250000</td>
                                    </tr>
                                    </tbody>
                                </table>
                                <p>5 rows × 80 columns</p>
                            </div>
                        </div>

                    </div>

                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>这时候大概心里可以有数，哪些地方需要人为的处理一下，以做到源数据更加好被process。</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <h2 id="Step-2:-&#21512;&#24182;&#25968;&#25454;">Step 2: &#21512;&#24182;&#25968;&#25454;<a
                            class="anchor-link" href="#Step-2:-&#21512;&#24182;&#25968;&#25454;">&#182;</a></h2>
                    <p>这么做主要是为了用DF进行数据预处理的时候更加方便。等所有的需要的预处理进行完之后，我们再把他们分隔开。</p>
                    <p>首先，SalePrice作为我们的训练目标，只会出现在训练集中，不会在测试集中（要不然你测试什么？）。所以，我们先把<em>SalePrice</em>这一列给拿出来，不让它碍事儿。</p>
                    <p>我们先看一下<em>SalePrice</em>长什么样纸：</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[74]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">matplotlib</span> inline
<span class="n">prices</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span
                                    class="p">({</span><span class="s2">&quot;price&quot;</span><span class="p">:</span><span
                                    class="n">train_df</span><span class="p">[</span><span class="s2">&quot;SalePrice&quot;</span><span
                                    class="p">],</span> <span class="s2">&quot;log(price + 1)&quot;</span><span
                                    class="p">:</span><span class="n">np</span><span class="o">.</span><span class="n">log1p</span><span
                                    class="p">(</span><span class="n">train_df</span><span class="p">[</span><span
                                    class="s2">&quot;SalePrice&quot;</span><span class="p">])})</span>
<span class="n">prices</span><span class="o">.</span><span class="n">hist</span><span class="p">()</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

            <div class="output_wrapper">
                <div class="output">


                    <div class="output_area">
                        <div class="prompt output_prompt">Out[74]:</div>


                        <div class="output_text output_subarea output_execute_result">
<pre>array([[&lt;matplotlib.axes._subplots.AxesSubplot object at 0x10c05b5f8&gt;,
        &lt;matplotlib.axes._subplots.AxesSubplot object at 0x10c095860&gt;]], dtype=object)</pre>
                        </div>

                    </div>

                    <div class="output_area">
                        <div class="prompt"></div>


                        <div class="output_png output_subarea ">
                            <img src="
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
YII=
"
                            >
                        </div>

                    </div>

                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>可见，label本身并不平滑。为了我们分类器的学习更加准确，我们会首先把label给“平滑化”（正态化）</p>
                    <p>这一步大部分同学会miss掉，导致自己的结果总是达不到一定标准。</p>
                    <p>这里我们使用最有逼格的log1p, 也就是 log(x+1)，避免了复值的问题。</p>
                    <p>记住哟，如果我们这里把数据都给平滑化了，那么最后算结果的时候，要记得把预测到的平滑数据给变回去。</p>
                    <p>按照“怎么来的怎么去”原则，log1p()就需要expm1(); 同理，log()就需要exp(), ... etc.</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[75]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">y_train</span> <span
                                class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">log1p</span><span
                                class="p">(</span><span class="n">train_df</span><span class="o">.</span><span
                                class="n">pop</span><span class="p">(</span><span
                                class="s1">&#39;SalePrice&#39;</span><span class="p">))</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>然后我们把剩下的部分合并起来</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[76]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">all_df</span> <span
                                class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">concat</span><span
                                class="p">((</span><span class="n">train_df</span><span class="p">,</span> <span
                                class="n">test_df</span><span class="p">),</span> <span class="n">axis</span><span
                                class="o">=</span><span class="mi">0</span><span class="p">)</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>此刻，我们可以看到all_df就是我们合在一起的DF</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[77]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">all_df</span><span
                                class="o">.</span><span class="n">shape</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

            <div class="output_wrapper">
                <div class="output">


                    <div class="output_area">
                        <div class="prompt output_prompt">Out[77]:</div>


                        <div class="output_text output_subarea output_execute_result">
                            <pre>(2919, 79)</pre>
                        </div>

                    </div>

                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>而<em>y_train</em>则是<em>SalePrice</em>那一列</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[78]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">y_train</span><span
                                class="o">.</span><span class="n">head</span><span class="p">()</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

            <div class="output_wrapper">
                <div class="output">


                    <div class="output_area">
                        <div class="prompt output_prompt">Out[78]:</div>


                        <div class="output_text output_subarea output_execute_result">
<pre>Id
1    12.247699
2    12.109016
3    12.317171
4    11.849405
5    12.429220
Name: SalePrice, dtype: float64</pre>
                        </div>

                    </div>

                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <h2 id="Step-3:-&#21464;&#37327;&#36716;&#21270;">Step 3: &#21464;&#37327;&#36716;&#21270;<a
                            class="anchor-link" href="#Step-3:-&#21464;&#37327;&#36716;&#21270;">&#182;</a></h2>
                    <p>类似『特征工程』。就是把不方便处理或者不unify的数据给统一了。</p>
                    <h4 id="&#27491;&#30830;&#21270;&#21464;&#37327;&#23646;&#24615;">&#27491;&#30830;&#21270;&#21464;&#37327;&#23646;&#24615;<a
                            class="anchor-link"
                            href="#&#27491;&#30830;&#21270;&#21464;&#37327;&#23646;&#24615;">&#182;</a></h4>
                    <p>首先，我们注意到，<em>MSSubClass</em> 的值其实应该是一个category，</p>
                    <p>但是Pandas是不会懂这些事儿的。使用DF的时候，这类数字符号会被默认记成数字。</p>
                    <p>这种东西就很有误导性，我们需要把它变回成<em>string</em></p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[79]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">all_df</span><span
                                class="p">[</span><span class="s1">&#39;MSSubClass&#39;</span><span
                                class="p">]</span><span class="o">.</span><span class="n">dtypes</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

            <div class="output_wrapper">
                <div class="output">


                    <div class="output_area">
                        <div class="prompt output_prompt">Out[79]:</div>


                        <div class="output_text output_subarea output_execute_result">
                            <pre>dtype(&#39;int64&#39;)</pre>
                        </div>

                    </div>

                </div>
            </div>

        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[80]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">all_df</span><span
                                class="p">[</span><span class="s1">&#39;MSSubClass&#39;</span><span
                                class="p">]</span> <span class="o">=</span> <span class="n">all_df</span><span
                                class="p">[</span><span class="s1">&#39;MSSubClass&#39;</span><span
                                class="p">]</span><span class="o">.</span><span class="n">astype</span><span
                                class="p">(</span><span class="nb">str</span><span class="p">)</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>变成<em>str</em>以后，做个统计，就很清楚了</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[81]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">all_df</span><span
                                class="p">[</span><span class="s1">&#39;MSSubClass&#39;</span><span
                                class="p">]</span><span class="o">.</span><span class="n">value_counts</span><span
                                class="p">()</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

            <div class="output_wrapper">
                <div class="output">


                    <div class="output_area">
                        <div class="prompt output_prompt">Out[81]:</div>


                        <div class="output_text output_subarea output_execute_result">
<pre>20     1079
60      575
50      287
120     182
30      139
160     128
70      128
80      118
90      109
190      61
85       48
75       23
45       18
180      17
40        6
150       1
Name: MSSubClass, dtype: int64</pre>
                        </div>

                    </div>

                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <h4 id="&#25226;category&#30340;&#21464;&#37327;&#36716;&#21464;&#25104;numerical&#34920;&#36798;&#24418;&#24335;">
                        &#25226;category&#30340;&#21464;&#37327;&#36716;&#21464;&#25104;numerical&#34920;&#36798;&#24418;&#24335;<a
                            class="anchor-link"
                            href="#&#25226;category&#30340;&#21464;&#37327;&#36716;&#21464;&#25104;numerical&#34920;&#36798;&#24418;&#24335;">&#182;</a>
                    </h4>
                    <p>
                        当我们用numerical来表达categorical的时候，要注意，数字本身有大小的含义，所以乱用数字会给之后的模型学习带来麻烦。于是我们可以用One-Hot的方法来表达category。</p>
                    <p>pandas自带的get_dummies方法，可以帮你一键做到One-Hot。</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[82]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">pd</span><span
                                class="o">.</span><span class="n">get_dummies</span><span class="p">(</span><span
                                class="n">all_df</span><span class="p">[</span><span
                                class="s1">&#39;MSSubClass&#39;</span><span class="p">],</span> <span
                                class="n">prefix</span><span class="o">=</span><span
                                class="s1">&#39;MSSubClass&#39;</span><span class="p">)</span><span
                                class="o">.</span><span class="n">head</span><span class="p">()</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

            <div class="output_wrapper">
                <div class="output">


                    <div class="output_area">
                        <div class="prompt output_prompt">Out[82]:</div>

                        <div class="output_html rendered_html output_subarea output_execute_result">
                            <div>
                                <table border="1" class="dataframe">
                                    <thead>
                                    <tr style="text-align: right;">
                                        <th></th>
                                        <th>MSSubClass_120</th>
                                        <th>MSSubClass_150</th>
                                        <th>MSSubClass_160</th>
                                        <th>MSSubClass_180</th>
                                        <th>MSSubClass_190</th>
                                        <th>MSSubClass_20</th>
                                        <th>MSSubClass_30</th>
                                        <th>MSSubClass_40</th>
                                        <th>MSSubClass_45</th>
                                        <th>MSSubClass_50</th>
                                        <th>MSSubClass_60</th>
                                        <th>MSSubClass_70</th>
                                        <th>MSSubClass_75</th>
                                        <th>MSSubClass_80</th>
                                        <th>MSSubClass_85</th>
                                        <th>MSSubClass_90</th>
                                    </tr>
                                    <tr>
                                        <th>Id</th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                    </tr>
                                    </thead>
                                    <tbody>
                                    <tr>
                                        <th>1</th>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>1.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                    </tr>
                                    <tr>
                                        <th>2</th>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>1.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                    </tr>
                                    <tr>
                                        <th>3</th>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>1.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                    </tr>
                                    <tr>
                                        <th>4</th>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>1.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                    </tr>
                                    <tr>
                                        <th>5</th>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>1.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                    </tr>
                                    </tbody>
                                </table>
                            </div>
                        </div>

                    </div>

                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>此刻<em>MSSubClass</em>被我们分成了12个column，每一个代表一个category。是就是1，不是就是0。</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>同理，我们把所有的category数据，都给One-Hot了</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[83]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">all_dummy_df</span> <span
                                class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">get_dummies</span><span
                                class="p">(</span><span class="n">all_df</span><span class="p">)</span>
<span class="n">all_dummy_df</span><span class="o">.</span><span class="n">head</span><span class="p">()</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

            <div class="output_wrapper">
                <div class="output">


                    <div class="output_area">
                        <div class="prompt output_prompt">Out[83]:</div>

                        <div class="output_html rendered_html output_subarea output_execute_result">
                            <div>
                                <table border="1" class="dataframe">
                                    <thead>
                                    <tr style="text-align: right;">
                                        <th></th>
                                        <th>LotFrontage</th>
                                        <th>LotArea</th>
                                        <th>OverallQual</th>
                                        <th>OverallCond</th>
                                        <th>YearBuilt</th>
                                        <th>YearRemodAdd</th>
                                        <th>MasVnrArea</th>
                                        <th>BsmtFinSF1</th>
                                        <th>BsmtFinSF2</th>
                                        <th>BsmtUnfSF</th>
                                        <th>...</th>
                                        <th>SaleType_ConLw</th>
                                        <th>SaleType_New</th>
                                        <th>SaleType_Oth</th>
                                        <th>SaleType_WD</th>
                                        <th>SaleCondition_Abnorml</th>
                                        <th>SaleCondition_AdjLand</th>
                                        <th>SaleCondition_Alloca</th>
                                        <th>SaleCondition_Family</th>
                                        <th>SaleCondition_Normal</th>
                                        <th>SaleCondition_Partial</th>
                                    </tr>
                                    <tr>
                                        <th>Id</th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                    </tr>
                                    </thead>
                                    <tbody>
                                    <tr>
                                        <th>1</th>
                                        <td>65.0</td>
                                        <td>8450</td>
                                        <td>7</td>
                                        <td>5</td>
                                        <td>2003</td>
                                        <td>2003</td>
                                        <td>196.0</td>
                                        <td>706.0</td>
                                        <td>0.0</td>
                                        <td>150.0</td>
                                        <td>...</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>1.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>1.0</td>
                                        <td>0.0</td>
                                    </tr>
                                    <tr>
                                        <th>2</th>
                                        <td>80.0</td>
                                        <td>9600</td>
                                        <td>6</td>
                                        <td>8</td>
                                        <td>1976</td>
                                        <td>1976</td>
                                        <td>0.0</td>
                                        <td>978.0</td>
                                        <td>0.0</td>
                                        <td>284.0</td>
                                        <td>...</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>1.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>1.0</td>
                                        <td>0.0</td>
                                    </tr>
                                    <tr>
                                        <th>3</th>
                                        <td>68.0</td>
                                        <td>11250</td>
                                        <td>7</td>
                                        <td>5</td>
                                        <td>2001</td>
                                        <td>2002</td>
                                        <td>162.0</td>
                                        <td>486.0</td>
                                        <td>0.0</td>
                                        <td>434.0</td>
                                        <td>...</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>1.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>1.0</td>
                                        <td>0.0</td>
                                    </tr>
                                    <tr>
                                        <th>4</th>
                                        <td>60.0</td>
                                        <td>9550</td>
                                        <td>7</td>
                                        <td>5</td>
                                        <td>1915</td>
                                        <td>1970</td>
                                        <td>0.0</td>
                                        <td>216.0</td>
                                        <td>0.0</td>
                                        <td>540.0</td>
                                        <td>...</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>1.0</td>
                                        <td>1.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                    </tr>
                                    <tr>
                                        <th>5</th>
                                        <td>84.0</td>
                                        <td>14260</td>
                                        <td>8</td>
                                        <td>5</td>
                                        <td>2000</td>
                                        <td>2000</td>
                                        <td>350.0</td>
                                        <td>655.0</td>
                                        <td>0.0</td>
                                        <td>490.0</td>
                                        <td>...</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>1.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>0.0</td>
                                        <td>1.0</td>
                                        <td>0.0</td>
                                    </tr>
                                    </tbody>
                                </table>
                                <p>5 rows × 303 columns</p>
                            </div>
                        </div>

                    </div>

                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <h4 id="&#22788;&#29702;&#22909;numerical&#21464;&#37327;">&#22788;&#29702;&#22909;numerical&#21464;&#37327;<a
                            class="anchor-link" href="#&#22788;&#29702;&#22909;numerical&#21464;&#37327;">&#182;</a>
                    </h4>
                    <p>就算是numerical的变量，也还会有一些小问题。</p>
                    <p>比如，有一些数据是缺失的：</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[84]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">all_dummy_df</span><span
                                class="o">.</span><span class="n">isnull</span><span class="p">()</span><span class="o">.</span><span
                                class="n">sum</span><span class="p">()</span><span class="o">.</span><span class="n">sort_values</span><span
                                class="p">(</span><span class="n">ascending</span><span class="o">=</span><span
                                class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">head</span><span
                                class="p">(</span><span class="mi">10</span><span class="p">)</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

            <div class="output_wrapper">
                <div class="output">


                    <div class="output_area">
                        <div class="prompt output_prompt">Out[84]:</div>


                        <div class="output_text output_subarea output_execute_result">
<pre>LotFrontage     486
GarageYrBlt     159
MasVnrArea       23
BsmtHalfBath      2
BsmtFullBath      2
BsmtFinSF2        1
GarageCars        1
TotalBsmtSF       1
BsmtUnfSF         1
GarageArea        1
dtype: int64</pre>
                        </div>

                    </div>

                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>可以看到，缺失最多的column是LotFrontage</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>处理这些缺失的信息，得靠好好审题。一般来说，数据集的描述里会写的很清楚，这些缺失都代表着什么。当然，如果实在没有的话，也只能靠自己的『想当然』。。</p>
                    <p>在这里，我们用平均值来填满这些空缺。</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[85]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">mean_cols</span> <span
                                class="o">=</span> <span class="n">all_dummy_df</span><span class="o">.</span><span
                                class="n">mean</span><span class="p">()</span>
<span class="n">mean_cols</span><span class="o">.</span><span class="n">head</span><span class="p">(</span><span
                                    class="mi">10</span><span class="p">)</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

            <div class="output_wrapper">
                <div class="output">


                    <div class="output_area">
                        <div class="prompt output_prompt">Out[85]:</div>


                        <div class="output_text output_subarea output_execute_result">
<pre>LotFrontage        69.305795
LotArea         10168.114080
OverallQual         6.089072
OverallCond         5.564577
YearBuilt        1971.312778
YearRemodAdd     1984.264474
MasVnrArea        102.201312
BsmtFinSF1        441.423235
BsmtFinSF2         49.582248
BsmtUnfSF         560.772104
dtype: float64</pre>
                        </div>

                    </div>

                </div>
            </div>

        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[86]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">all_dummy_df</span> <span
                                class="o">=</span> <span class="n">all_dummy_df</span><span class="o">.</span><span
                                class="n">fillna</span><span class="p">(</span><span class="n">mean_cols</span><span
                                class="p">)</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>看看是不是没有空缺了？</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[87]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">all_dummy_df</span><span
                                class="o">.</span><span class="n">isnull</span><span class="p">()</span><span class="o">.</span><span
                                class="n">sum</span><span class="p">()</span><span class="o">.</span><span
                                class="n">sum</span><span class="p">()</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

            <div class="output_wrapper">
                <div class="output">


                    <div class="output_area">
                        <div class="prompt output_prompt">Out[87]:</div>


                        <div class="output_text output_subarea output_execute_result">
                            <pre>0</pre>
                        </div>

                    </div>

                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <h4 id="&#26631;&#20934;&#21270;numerical&#25968;&#25454;">&#26631;&#20934;&#21270;numerical&#25968;&#25454;<a
                            class="anchor-link" href="#&#26631;&#20934;&#21270;numerical&#25968;&#25454;">&#182;</a>
                    </h4>
                    <p>这一步并不是必要，但是得看你想要用的分类器是什么。一般来说，regression的分类器都比较傲娇，最好是把源数据给放在一个标准分布内。不要让数据间的差距太大。</p>
                    <p>这里，我们当然不需要把One-Hot的那些0/1数据给标准化。我们的目标应该是那些本来就是numerical的数据：</p>
                    <p>先来看看 哪些是numerical的：</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[88]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">numeric_cols</span> <span
                                class="o">=</span> <span class="n">all_df</span><span class="o">.</span><span class="n">columns</span><span
                                class="p">[</span><span class="n">all_df</span><span class="o">.</span><span class="n">dtypes</span> <span
                                class="o">!=</span> <span class="s1">&#39;object&#39;</span><span class="p">]</span>
<span class="n">numeric_cols</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

            <div class="output_wrapper">
                <div class="output">


                    <div class="output_area">
                        <div class="prompt output_prompt">Out[88]:</div>


                        <div class="output_text output_subarea output_execute_result">
<pre>Index([&#39;LotFrontage&#39;, &#39;LotArea&#39;, &#39;OverallQual&#39;, &#39;OverallCond&#39;, &#39;YearBuilt&#39;,
       &#39;YearRemodAdd&#39;, &#39;MasVnrArea&#39;, &#39;BsmtFinSF1&#39;, &#39;BsmtFinSF2&#39;, &#39;BsmtUnfSF&#39;,
       &#39;TotalBsmtSF&#39;, &#39;1stFlrSF&#39;, &#39;2ndFlrSF&#39;, &#39;LowQualFinSF&#39;, &#39;GrLivArea&#39;,
       &#39;BsmtFullBath&#39;, &#39;BsmtHalfBath&#39;, &#39;FullBath&#39;, &#39;HalfBath&#39;, &#39;BedroomAbvGr&#39;,
       &#39;KitchenAbvGr&#39;, &#39;TotRmsAbvGrd&#39;, &#39;Fireplaces&#39;, &#39;GarageYrBlt&#39;,
       &#39;GarageCars&#39;, &#39;GarageArea&#39;, &#39;WoodDeckSF&#39;, &#39;OpenPorchSF&#39;,
       &#39;EnclosedPorch&#39;, &#39;3SsnPorch&#39;, &#39;ScreenPorch&#39;, &#39;PoolArea&#39;, &#39;MiscVal&#39;,
       &#39;MoSold&#39;, &#39;YrSold&#39;],
      dtype=&#39;object&#39;)</pre>
                        </div>

                    </div>

                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>计算标准分布：(X-X')/s</p>
                    <p>让我们的数据点更平滑，更便于计算。</p>
                    <p>注意：我们这里也是可以继续使用Log的，我只是给大家展示一下多种“使数据平滑”的办法。</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[89]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span
                                class="n">numeric_col_means</span> <span class="o">=</span> <span
                                class="n">all_dummy_df</span><span class="o">.</span><span class="n">loc</span><span
                                class="p">[:,</span> <span class="n">numeric_cols</span><span class="p">]</span><span
                                class="o">.</span><span class="n">mean</span><span class="p">()</span>
<span class="n">numeric_col_std</span> <span class="o">=</span> <span class="n">all_dummy_df</span><span
                                    class="o">.</span><span class="n">loc</span><span class="p">[:,</span> <span
                                    class="n">numeric_cols</span><span class="p">]</span><span class="o">.</span><span
                                    class="n">std</span><span class="p">()</span>
<span class="n">all_dummy_df</span><span class="o">.</span><span class="n">loc</span><span class="p">[:,</span> <span
                                    class="n">numeric_cols</span><span class="p">]</span> <span class="o">=</span> <span
                                    class="p">(</span><span class="n">all_dummy_df</span><span class="o">.</span><span
                                    class="n">loc</span><span class="p">[:,</span> <span
                                    class="n">numeric_cols</span><span class="p">]</span> <span class="o">-</span> <span
                                    class="n">numeric_col_means</span><span class="p">)</span> <span class="o">/</span> <span
                                    class="n">numeric_col_std</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <h2 id="Step-4:-&#24314;&#31435;&#27169;&#22411;">Step 4: &#24314;&#31435;&#27169;&#22411;<a
                            class="anchor-link" href="#Step-4:-&#24314;&#31435;&#27169;&#22411;">&#182;</a></h2><h4
                        id="&#25226;&#25968;&#25454;&#38598;&#20998;&#22238;-&#35757;&#32451;/&#27979;&#35797;&#38598;">
                    &#25226;&#25968;&#25454;&#38598;&#20998;&#22238; &#35757;&#32451;/&#27979;&#35797;&#38598;<a
                        class="anchor-link"
                        href="#&#25226;&#25968;&#25454;&#38598;&#20998;&#22238;-&#35757;&#32451;/&#27979;&#35797;&#38598;">&#182;</a>
                </h4>
                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[90]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span
                                class="n">dummy_train_df</span> <span class="o">=</span> <span
                                class="n">all_dummy_df</span><span class="o">.</span><span class="n">loc</span><span
                                class="p">[</span><span class="n">train_df</span><span class="o">.</span><span
                                class="n">index</span><span class="p">]</span>
<span class="n">dummy_test_df</span> <span class="o">=</span> <span class="n">all_dummy_df</span><span
                                    class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">test_df</span><span
                                    class="o">.</span><span class="n">index</span><span class="p">]</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[91]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">dummy_train_df</span><span
                                class="o">.</span><span class="n">shape</span><span class="p">,</span> <span class="n">dummy_test_df</span><span
                                class="o">.</span><span class="n">shape</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

            <div class="output_wrapper">
                <div class="output">


                    <div class="output_area">
                        <div class="prompt output_prompt">Out[91]:</div>


                        <div class="output_text output_subarea output_execute_result">
                            <pre>((1460, 303), (1459, 303))</pre>
                        </div>

                    </div>

                </div>
            </div>

        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[92]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">X_train</span> <span
                                class="o">=</span> <span class="n">dummy_train_df</span><span class="o">.</span><span
                                class="n">values</span>
<span class="n">X_test</span> <span class="o">=</span> <span class="n">dummy_test_df</span><span class="o">.</span><span
                                    class="n">values</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <h4 id="&#20570;&#19968;&#28857;&#39640;&#32423;&#30340;Ensemble">&#20570;&#19968;&#28857;&#39640;&#32423;&#30340;Ensemble<a
                            class="anchor-link"
                            href="#&#20570;&#19968;&#28857;&#39640;&#32423;&#30340;Ensemble">&#182;</a></h4>
                    <p>一般来说，单个分类器的效果真的是很有限。我们会倾向于把N多的分类器合在一起，做一个“综合分类器”以达到最好的效果。</p>
                    <p>我们从刚刚的试验中得知，Ridge(alpha=15)给了我们最好的结果</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[93]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span
                                class="nn">sklearn.linear_model</span> <span class="k">import</span> <span class="n">Ridge</span>
<span class="n">ridge</span> <span class="o">=</span> <span class="n">Ridge</span><span class="p">(</span><span
                                    class="mi">15</span><span class="p">)</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <h4 id="Bagging">Bagging<a class="anchor-link" href="#Bagging">&#182;</a></h4>
                    <p>Bagging把很多的小分类器放在一起，每个train随机的一部分数据，然后把它们的最终结果综合起来（多数投票制）。</p>
                    <p>Sklearn已经直接提供了这套构架，我们直接调用就行：</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[94]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span
                                class="nn">sklearn.ensemble</span> <span class="k">import</span> <span class="n">BaggingRegressor</span>
<span class="kn">from</span> <span class="nn">sklearn.model_selection</span> <span class="k">import</span> <span
                                    class="n">cross_val_score</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>在这里，我们用CV结果来测试不同的分类器个数对最后结果的影响。</p>
                    <p>注意，我们在部署Bagging的时候，要把它的函数base_estimator里填上你的小分类器（ridge）</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[95]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">params</span> <span
                                class="o">=</span> <span class="p">[</span><span class="mi">1</span><span
                                class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="mi">15</span><span
                                class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">25</span><span
                                class="p">,</span> <span class="mi">30</span><span class="p">,</span> <span class="mi">40</span><span
                                class="p">]</span>
<span class="n">test_scores</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">param</span> <span class="ow">in</span> <span class="n">params</span><span
                                    class="p">:</span>
    <span class="n">clf</span> <span class="o">=</span> <span class="n">BaggingRegressor</span><span
                                    class="p">(</span><span class="n">n_estimators</span><span class="o">=</span><span
                                    class="n">param</span><span class="p">,</span> <span class="n">base_estimator</span><span
                                    class="o">=</span><span class="n">ridge</span><span class="p">)</span>
    <span class="n">test_score</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span
                                    class="n">sqrt</span><span class="p">(</span><span class="o">-</span><span
                                    class="n">cross_val_score</span><span class="p">(</span><span
                                    class="n">clf</span><span class="p">,</span> <span class="n">X_train</span><span
                                    class="p">,</span> <span class="n">y_train</span><span class="p">,</span> <span
                                    class="n">cv</span><span class="o">=</span><span class="mi">10</span><span
                                    class="p">,</span> <span class="n">scoring</span><span class="o">=</span><span
                                    class="s1">&#39;neg_mean_squared_error&#39;</span><span class="p">))</span>
    <span class="n">test_scores</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span
                                    class="n">np</span><span class="o">.</span><span class="n">mean</span><span
                                    class="p">(</span><span class="n">test_score</span><span class="p">))</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[96]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span
                                class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span
                                class="nn">plt</span>
<span class="o">%</span><span class="k">matplotlib</span> inline
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">params</span><span
                                    class="p">,</span> <span class="n">test_scores</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;n_estimator vs CV Error&quot;</span><span
                                    class="p">);</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

            <div class="output_wrapper">
                <div class="output">


                    <div class="output_area">
                        <div class="prompt"></div>


                        <div class="output_png output_subarea ">
                            <img src="
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
"
                            >
                        </div>

                    </div>

                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>可见，前一个版本中，ridge最优结果也就是0.135；而这里，我们使用25个小ridge分类器的bagging，达到了低于0.132的结果。</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>当然了，你如果并没有提前测试过ridge模型，你也可以用Bagging自带的DecisionTree模型：</p>
                    <p>代码是一样的，把base_estimator给删去即可</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[106]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">params</span> <span
                                class="o">=</span> <span class="p">[</span><span class="mi">10</span><span
                                class="p">,</span> <span class="mi">15</span><span class="p">,</span> <span class="mi">20</span><span
                                class="p">,</span> <span class="mi">25</span><span class="p">,</span> <span class="mi">30</span><span
                                class="p">,</span> <span class="mi">40</span><span class="p">,</span> <span class="mi">50</span><span
                                class="p">,</span> <span class="mi">60</span><span class="p">,</span> <span class="mi">70</span><span
                                class="p">,</span> <span class="mi">100</span><span class="p">]</span>
<span class="n">test_scores</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">param</span> <span class="ow">in</span> <span class="n">params</span><span
                                    class="p">:</span>
    <span class="n">clf</span> <span class="o">=</span> <span class="n">BaggingRegressor</span><span
                                    class="p">(</span><span class="n">n_estimators</span><span class="o">=</span><span
                                    class="n">param</span><span class="p">)</span>
    <span class="n">test_score</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span
                                    class="n">sqrt</span><span class="p">(</span><span class="o">-</span><span
                                    class="n">cross_val_score</span><span class="p">(</span><span
                                    class="n">clf</span><span class="p">,</span> <span class="n">X_train</span><span
                                    class="p">,</span> <span class="n">y_train</span><span class="p">,</span> <span
                                    class="n">cv</span><span class="o">=</span><span class="mi">10</span><span
                                    class="p">,</span> <span class="n">scoring</span><span class="o">=</span><span
                                    class="s1">&#39;neg_mean_squared_error&#39;</span><span class="p">))</span>
    <span class="n">test_scores</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span
                                    class="n">np</span><span class="o">.</span><span class="n">mean</span><span
                                    class="p">(</span><span class="n">test_score</span><span class="p">))</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[107]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span
                                class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span
                                class="nn">plt</span>
<span class="o">%</span><span class="k">matplotlib</span> inline
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">params</span><span
                                    class="p">,</span> <span class="n">test_scores</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;n_estimator vs CV Error&quot;</span><span
                                    class="p">);</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

            <div class="output_wrapper">
                <div class="output">


                    <div class="output_area">
                        <div class="prompt"></div>


                        <div class="output_png output_subarea ">
                            <img src="
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
RK5CYII=
"
                            >
                        </div>

                    </div>

                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>咦，看来单纯用DT不太灵光的。最好的结果也就0.140</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <h4 id="Boosting">Boosting<a class="anchor-link" href="#Boosting">&#182;</a></h4>
                    <p>
                        Boosting比Bagging理论上更高级点，它也是揽来一把的分类器。但是把他们线性排列。下一个分类器把上一个分类器分类得不好的地方加上更高的权重，这样下一个分类器就能在这个部分学得更加“深刻”。</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[97]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span
                                class="nn">sklearn.ensemble</span> <span class="k">import</span> <span class="n">AdaBoostRegressor</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[98]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">params</span> <span
                                class="o">=</span> <span class="p">[</span><span class="mi">10</span><span
                                class="p">,</span> <span class="mi">15</span><span class="p">,</span> <span class="mi">20</span><span
                                class="p">,</span> <span class="mi">25</span><span class="p">,</span> <span class="mi">30</span><span
                                class="p">,</span> <span class="mi">35</span><span class="p">,</span> <span class="mi">40</span><span
                                class="p">,</span> <span class="mi">45</span><span class="p">,</span> <span class="mi">50</span><span
                                class="p">]</span>
<span class="n">test_scores</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">param</span> <span class="ow">in</span> <span class="n">params</span><span
                                    class="p">:</span>
    <span class="n">clf</span> <span class="o">=</span> <span class="n">BaggingRegressor</span><span
                                    class="p">(</span><span class="n">n_estimators</span><span class="o">=</span><span
                                    class="n">param</span><span class="p">,</span> <span class="n">base_estimator</span><span
                                    class="o">=</span><span class="n">ridge</span><span class="p">)</span>
    <span class="n">test_score</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span
                                    class="n">sqrt</span><span class="p">(</span><span class="o">-</span><span
                                    class="n">cross_val_score</span><span class="p">(</span><span
                                    class="n">clf</span><span class="p">,</span> <span class="n">X_train</span><span
                                    class="p">,</span> <span class="n">y_train</span><span class="p">,</span> <span
                                    class="n">cv</span><span class="o">=</span><span class="mi">10</span><span
                                    class="p">,</span> <span class="n">scoring</span><span class="o">=</span><span
                                    class="s1">&#39;neg_mean_squared_error&#39;</span><span class="p">))</span>
    <span class="n">test_scores</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span
                                    class="n">np</span><span class="o">.</span><span class="n">mean</span><span
                                    class="p">(</span><span class="n">test_score</span><span class="p">))</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[99]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">plt</span><span class="o">.</span><span
                                class="n">plot</span><span class="p">(</span><span class="n">params</span><span
                                class="p">,</span> <span class="n">test_scores</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;n_estimator vs CV Error&quot;</span><span
                                    class="p">);</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

            <div class="output_wrapper">
                <div class="output">


                    <div class="output_area">
                        <div class="prompt"></div>


                        <div class="output_png output_subarea ">
                            <img src="
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
"
                            >
                        </div>

                    </div>

                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>Adaboost+Ridge在这里，25个小分类器的情况下，也是达到了接近0.132的效果。</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>同理，这里，你也可以不必输入Base_estimator，使用Adaboost自带的DT。</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[108]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">params</span> <span
                                class="o">=</span> <span class="p">[</span><span class="mi">10</span><span
                                class="p">,</span> <span class="mi">15</span><span class="p">,</span> <span class="mi">20</span><span
                                class="p">,</span> <span class="mi">25</span><span class="p">,</span> <span class="mi">30</span><span
                                class="p">,</span> <span class="mi">35</span><span class="p">,</span> <span class="mi">40</span><span
                                class="p">,</span> <span class="mi">45</span><span class="p">,</span> <span class="mi">50</span><span
                                class="p">]</span>
<span class="n">test_scores</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">param</span> <span class="ow">in</span> <span class="n">params</span><span
                                    class="p">:</span>
    <span class="n">clf</span> <span class="o">=</span> <span class="n">BaggingRegressor</span><span
                                    class="p">(</span><span class="n">n_estimators</span><span class="o">=</span><span
                                    class="n">param</span><span class="p">)</span>
    <span class="n">test_score</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span
                                    class="n">sqrt</span><span class="p">(</span><span class="o">-</span><span
                                    class="n">cross_val_score</span><span class="p">(</span><span
                                    class="n">clf</span><span class="p">,</span> <span class="n">X_train</span><span
                                    class="p">,</span> <span class="n">y_train</span><span class="p">,</span> <span
                                    class="n">cv</span><span class="o">=</span><span class="mi">10</span><span
                                    class="p">,</span> <span class="n">scoring</span><span class="o">=</span><span
                                    class="s1">&#39;neg_mean_squared_error&#39;</span><span class="p">))</span>
    <span class="n">test_scores</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span
                                    class="n">np</span><span class="o">.</span><span class="n">mean</span><span
                                    class="p">(</span><span class="n">test_score</span><span class="p">))</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[109]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">plt</span><span class="o">.</span><span
                                class="n">plot</span><span class="p">(</span><span class="n">params</span><span
                                class="p">,</span> <span class="n">test_scores</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;n_estimator vs CV Error&quot;</span><span
                                    class="p">);</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

            <div class="output_wrapper">
                <div class="output">


                    <div class="output_area">
                        <div class="prompt"></div>


                        <div class="output_png output_subarea ">
                            <img src="
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
ZgD8fxlXffxDV8AqAAAAAElFTkSuQmCC
"
                            >
                        </div>

                    </div>

                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>看来我们也许要先tune一下我们的DT模型，再做这个实验。。:P</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <h4 id="XGBoost">XGBoost<a class="anchor-link" href="#XGBoost">&#182;</a></h4>
                    <p>最后，我们来看看巨牛逼的XGBoost，外号：Kaggle神器</p>
                    <p>这依旧是一款Boosting框架的模型，但是却做了很多的改进。</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[100]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span
                                class="nn">xgboost</span> <span class="k">import</span> <span
                                class="n">XGBRegressor</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>用Sklearn自带的cross validation方法来测试模型</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[101]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="n">params</span> <span
                                class="o">=</span> <span class="p">[</span><span class="mi">1</span><span
                                class="p">,</span><span class="mi">2</span><span class="p">,</span><span
                                class="mi">3</span><span class="p">,</span><span class="mi">4</span><span
                                class="p">,</span><span class="mi">5</span><span class="p">,</span><span
                                class="mi">6</span><span class="p">]</span>
<span class="n">test_scores</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">param</span> <span class="ow">in</span> <span class="n">params</span><span
                                    class="p">:</span>
    <span class="n">clf</span> <span class="o">=</span> <span class="n">XGBRegressor</span><span class="p">(</span><span
                                    class="n">max_depth</span><span class="o">=</span><span class="n">param</span><span
                                    class="p">)</span>
    <span class="n">test_score</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span
                                    class="n">sqrt</span><span class="p">(</span><span class="o">-</span><span
                                    class="n">cross_val_score</span><span class="p">(</span><span
                                    class="n">clf</span><span class="p">,</span> <span class="n">X_train</span><span
                                    class="p">,</span> <span class="n">y_train</span><span class="p">,</span> <span
                                    class="n">cv</span><span class="o">=</span><span class="mi">10</span><span
                                    class="p">,</span> <span class="n">scoring</span><span class="o">=</span><span
                                    class="s1">&#39;neg_mean_squared_error&#39;</span><span class="p">))</span>
    <span class="n">test_scores</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span
                                    class="n">np</span><span class="o">.</span><span class="n">mean</span><span
                                    class="p">(</span><span class="n">test_score</span><span class="p">))</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>存下所有的CV值，看看哪个alpha值更好（也就是『调参数』）</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[102]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span
                                class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span
                                class="nn">plt</span>
<span class="o">%</span><span class="k">matplotlib</span> inline
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">params</span><span
                                    class="p">,</span> <span class="n">test_scores</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;max_depth vs CV Error&quot;</span><span
                                    class="p">);</span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

            <div class="output_wrapper">
                <div class="output">


                    <div class="output_area">
                        <div class="prompt"></div>


                        <div class="output_png output_subarea ">
                            <img src="
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
"
                            >
                        </div>

                    </div>

                </div>
            </div>

        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>惊了，深度为5的时候，错误率缩小到0.127</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing text_cell rendered">
            <div class="prompt input_prompt">
            </div>
            <div class="inner_cell">
                <div class="text_cell_render border-box-sizing rendered_html">
                    <p>这就是为什么，浮躁的竞赛圈，人人都在用XGBoost :)</p>

                </div>
            </div>
        </div>
        <div class="cell border-box-sizing code_cell rendered">
            <div class="input">
                <div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
                <div class="inner_cell">
                    <div class="input_area">
                        <div class=" highlight hl-ipython3"><pre><span></span>
</pre>
                        </div>

                    </div>
                </div>
            </div>

        </div>
    </div>
</div>
</body>
</html>
